Bash

在單行 bash 循環中使用 &(與號)

  • September 19, 2020

我一直在成功使用此命令,它更改配置文件中的變數,然後在循環中執行 Python 腳本:

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

由於每個DoMyScript.py實例在終止前需要大約 30 秒才能執行,因此我想將它們降級到後台,同時可以生成下一個實例。

我已經嘗試了我熟悉的方法,方法是添加一個 & 符號,如下所示:

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

但是,這會導致以下錯誤:

-bash: syntax error near unexpected token `;'

刪除;之後&。這是語法要求

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

鑑於 Stephane 對1_CR’s answer的評論,您可能想要:

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

引用自:https://unix.stackexchange.com/questions/91684