GNU/Linux >> Tutoriels Linux >  >> Linux

Exécuter un programme avec divers paramètres (boucle) ?

J'ai un programme, prog , qui prend un argument entier lorsque je l'appelle depuis le terminal, par exemple :

./prog 10

Je voudrais exécuter prog avec une plage de valeurs, par ex. 10, 20, 30, ... . Existe-t-il un moyen astucieux de le faire, en plus d'utiliser :

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

Réponse acceptée :

Vous pouvez utiliser une boucle for simple avec Bash, Zsh ou Ksh93.
Ce qui suit ne fonctionne que depuis la version 4 de Bash (2009), zsh 4.3.10 (2010) et ksh93r (2006) (bien que le {x..y} la syntaxe provient de zsh (en 2.6-beta4 en 1995)).

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

Le {$start..$end..$step} partie dit que $i est au départ égal à $start et $i ira à $end .
L'$step est le montant avec lequel $i sera augmentée à chaque étape.
Nous obtenons donc les valeurs 10 20 30 ... 100 pour $i .

Vous pouvez également tout écrire sur une seule ligne avec

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

Si vous avez un ancien Bash et GNU seq est disponible, utilisez les lignes suivantes

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

ou en une seule ligne

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

(ce qui précède suppose que vous n'avez pas modifié le $IFS variable).


Linux
  1. Comment programmer avec Bash :syntaxe et outils

  2. Comment créer une boucle For avec un nombre variable d'itérations ?

  3. Pour une boucle avec des noms de fichiers ?

  4. ouvrir un fichier avec le programme par défaut dans node-webkit

  5. Savoir avec quels paramètres un programme a été lancé

Gérer les machines virtuelles KVM avec le programme Virsh

Bash Scripting - Boucle While And Until expliquée avec des exemples

Bash Scripting - Boucle For expliquée avec des exemples

Bash For Loops avec des exemples

Comment vérifier les paramètres du serveur VPS avec la commande Linux

Script bash pour la boucle expliqué avec des exemples