Dies ist wahrscheinlich kinderleicht, aber gibt es eine einfache Möglichkeit, einen Befehl einmal in die Konsole zu schreiben und ihn n
mal ausführen zu lassen , wo n
zur Laufzeit angegeben? Etwas wie das:
repeat 100 echo hello
Existiert ein solcher Befehl (vorausgesetzt, eine typische Linux-Installation)?
Oder würde ich schreiben, um eine Art Schleife in Bash zu machen?
command-line
unix
Jørn Schou-Rode
quelle
quelle
for i in {1..100}; do python3 foo.py ; done
und wollte eigentlich die Ausführungszeit ermitteln (um zu sehen, wie schnell),time for i in {1..100}; do python3 foo.py ; done
und dann kann STRG-C die Schleife nicht stoppenJa, das würde dir gefallen:
oder kürzer:
quelle
Zusätzlich zu mehr integrierten Methoden können Sie ein externes Dienstprogramm verwenden, das eine Folge von Zahlen generiert.
quelle
Die for-Schleifensyntax ist albern. Das ist kürzer:
quelle
Ich habe kein "Standard" -Linux-Tool gefunden, um diesen Job zu erledigen, aber ich behalte normalerweise meine Punktedateien (.bashrc, .vimrc usw.) von Installation zu Installation bei, daher ist das Folgende ziemlich "Standard", wenn man es betrachtet die Perspektive, Ihre Punktedateien in neuen Installationen zu erhalten:
Geben Sie am Ende Ihrer .bashrc- oder .bash_aliases die folgende Definition ein:
Speichern Sie die Datei und öffnen Sie die Shell erneut oder führen Sie sie
source /path/to/.bashrc
odersource /path/to/.bash_aliases
, je nachdem, was Sie ändern möchten, in einer vorhandenen Shell aus.Das ist es! Sie sollten es auf folgende Weise verwenden können:
repeat 100 echo hello
repeat 84 ~/scripts/potato.sh
etc.
quelle
Derzeit verwendet keine der anderen Antworten Standard-Unix-Tools, nach denen in der Titelfrage gefragt wird.
Sie alle verwenden entweder nicht standardmäßige Befehle (
seq
oderjot
) oder Shell-Erweiterungen (for
Schleifen- oder Klammererweiterung im C-Stil ), dh sie halten sich nicht an den POSIX-Standard.Hier ist eine tragbare Methode, die mit jeder POSIX-kompatiblen Shell und jedem Betriebssystem funktionieren sollte:
quelle