GNU/Linux >> Znalost Linux >  >> Linux

Provádění programu s různými parametry (smyčka)?

Mám program prog , který při volání z terminálu přebírá celočíselný argument, např.:

./prog 10

Chtěl bych spustit prog s rozsahem hodnot, např. 10, 20, 30, ... . Existuje úhledný způsob, jak to udělat, kromě použití:

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

Přijatá odpověď:

Můžete použít jednoduchou smyčku for s Bash, Zsh nebo Ksh93.
Následující funguje pouze od verze Bash 4 (2009), zsh 4.3.10 (2010) a ksh93r (2006) (ačkoli {x..y} syntaxe pochází z zsh (v 2.6-beta4 v roce 1995).

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

{$start..$end..$step} část říká, že $i je na začátku roven $start a $i přejde na $end .
$step je částka, se kterou $i se bude každým krokem zvyšovat.
Dostaneme tedy hodnoty 10 20 30 ... 100 pro $i .

Můžete to také napsat na jeden řádek pomocí

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

Pokud máte starší Bash a GNU seq je k dispozici, použijte následující řádky

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

nebo jako jedna vložka

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

(výše předpokládá, že jste neupravili $IFS proměnná).


Linux
  1. Jak programovat s Bash:Syntaxe a nástroje

  2. otevřete soubor s výchozím programem v node-webkit

  3. Selhání programu lynx s 'Can't access startfile'?

  1. Bash -c s pozičními parametry?

  2. Jak vytvořit smyčku For s měnitelným počtem iterací?

  3. Pro smyčku s názvy souborů?

  1. Speciální parametry Bash vysvětlené pomocí 4 příkladů shellových skriptů

  2. Jak vytvářet vlákna v Linuxu (pomocí ukázkového programu C)

  3. Jak upgradovat program nainstalovaný pomocí Softaculous