it-swarm.com.de

Verwenden Sie & (kaufmännisches Und) in einer einzeiligen Bash-Schleife

Ich habe diesen Befehl erfolgreich verwendet, der eine Variable in einer Konfigurationsdatei ändert und dann ein Python Skript in einer Schleife ausführt:

for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py; done

Wie jeder DoMyScript.py selbst dauert ungefähr 30 Sekunden, bevor es beendet wird. Ich möchte sie in den Hintergrund rücken, während das nächste erzeugt werden kann.

Ich habe versucht, was mir vertraut ist, indem ich ein kaufmännisches Und wie folgt eingefügt habe:

for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py &; done

Dies führt jedoch zu dem folgenden Fehler:

-bash: Syntaxfehler in der Nähe eines unerwarteten Tokens `; '

61
ljs.dev

Lass fallen ; nach &. Dies ist eine syntaktische Anforderung

for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py & done
91
iruvar

Angesichts des Kommentars von Stephane zu 1_CR's Antwort möchten Sie wahrscheinlich:

for i in {114..255}; do { echo $i > numbers.txt && python DoMyScript.py; } & done
14
glenn jackman

Verliere das ;:

for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py & done
11