J'ai utilisé cette commande avec succès, ce qui modifie une variable dans un fichier de configuration puis exécute un script Python dans une boucle:
for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py; done
Comme chacun DoMyScript.py
lui-même prend environ 30 secondes pour s'exécuter avant de se terminer, je voudrais les reléguer à l'arrière-plan pendant que le suivant peut être généré.
J'ai essayé ce que je connais, en ajoutant une esperluette comme ci-dessous:
for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py &; done
Cependant, cela se traduit par l'erreur ci-dessous:
-bash: erreur de syntaxe près du jeton inattendu `; '
Jeter le ;
après &
. Il s'agit d'une exigence syntaxique
for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py & done
Étant donné le commentaire de Stéphane sur réponse de 1_CR , vous voulez probablement:
for i in {114..255}; do { echo $i > numbers.txt && python DoMyScript.py; } & done
Perdre le ;
:
for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py & done