GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ausführen eines Programms mit verschiedenen Parametern (Schleife)?

Ich habe ein Programm, prog , das ein ganzzahliges Argument akzeptiert, wenn ich es vom Terminal aus aufrufe, z. B.:

./prog 10

Ich möchte prog ausführen mit einem Wertebereich, z. 10, 20, 30, ... . Gibt es eine nette Möglichkeit, dies zu tun, außer mit:

./prog 10 ; ./prog 20 ; ./prog 30 ; ....

Akzeptierte Antwort:

Sie können eine einfache for-Schleife mit Bash, Zsh oder Ksh93 verwenden.
Folgendes funktioniert nur seit Bash Version 4 (2009), zsh 4.3.10 (2010) und ksh93r (2006) (obwohl der {x..y} Syntax stammt aus zsh (in 2.6-beta4 1995)).

#!/bin/bash
# since Bash v4
for i in {10..100..10}
do
     $path_of_prog/prog $i
done

Der {$start..$end..$step} Teil sagt, dass $i ist am Anfang gleich $start und $i geht zu $end .
Der $step ist der Betrag, mit dem $i wird Schritt für Schritt erhöht.
So erhalten wir die Werte 10 20 30 ... 100 für $i .

Sie können auch alles in einer Zeile mit

schreiben
for i in {10..100..10}; do ./prog $i; done

Wenn Sie eine ältere Bash und GNU seq haben verfügbar ist, verwenden Sie die folgenden Zeilen

#!/bin/bash
#only for pre Bash v4
for i in $(seq 10 10 100)
do
   $path_of_prog/prog $i
done

oder als Einzeiler

for i in $(seq 10 10 100);do ./prog $i; done

(Das Obige setzt voraus, dass Sie $IFS nicht geändert haben Variable).


Linux
  1. Programmieren mit Bash:Syntax und Tools

  2. For-Schleife mit Dateinamen?

  3. Überprüfen, ob eine Binärdatei mit -static kompiliert wurde

  4. Öffnen Sie eine Datei mit dem Standardprogramm im Knoten-Webkit

  5. Herausfinden, mit welchen Parametern ein Programm gestartet wurde

Verwalten Sie virtuelle KVM-Maschinen mit dem Virsh-Programm

Bash-Skripting – While- und Until-Schleife mit Beispielen erklärt

Bash-Scripting – For-Schleife mit Beispielen erklärt

Bash For-Schleifen mit Beispielen

So überprüfen Sie die VPS-Serverparameter mit dem Linux-Befehl

Bash-Skript für Schleife mit Beispielen erklärt