GNU/Linux >> Linux Esercitazione >  >> Linux

Esecuzione di un programma con vari parametri (loop)?

Ho un programma, prog , che accetta un argomento intero quando lo chiamo dal terminale, ad esempio:

./prog 10

Vorrei eseguire prog con un intervallo di valori, ad es. 10, 20, 30, ... . C'è un modo semplice per farlo, oltre a usare:

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

Risposta accettata:

Puoi utilizzare un ciclo for semplice con Bash, Zsh o Ksh93.
Quanto segue funziona solo da Bash versione 4 (2009), zsh 4.3.10 (2010) e ksh93r (2006) (sebbene il {x..y} la sintassi ha origine in zsh (in 2.6-beta4 nel 1995)).

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

Il {$start..$end..$step} parte dice che $i è all'inizio uguale a $start e $i andrà a $end .
Il $step è l'importo con cui $i verrà aumentato ad ogni passaggio.
Quindi otteniamo i valori 10 20 30 ... 100 per $i .

Potresti anche scrivere tutto in una riga con

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

Se hai un vecchio Bash e GNU seq è disponibile, utilizzare le seguenti righe

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

o come una fodera

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

(quanto sopra presuppone che tu non abbia modificato il $IFS variabile).


Linux
  1. Come programmare con Bash:sintassi e strumenti

  2. Bash -c con parametri posizionali?

  3. For Loop con nomi di file?

  4. Come creare thread in Linux (con un programma di esempio C)

  5. apri un file con il programma predefinito in node-webkit

Gestisci macchine virtuali KVM con il programma Virsh

Bash Scripting - Mentre e fino a ciclo spiegato con esempi

Bash Scripting – For Loop spiegato con esempi

Bash For Loops con esempi

Come controllare i parametri del server VPS con il comando Linux

Script Bash per Loop spiegato con esempi