Bash - 如何使用 for 循环顺序运行命令

Bash - 如何使用 for 循环顺序运行命令

一个玩具示例:

我想依次运行以下命令

python generate.py 1
python simulate.py 1
python generate.py 2
python simulate.py 2
...
python generate.py 100
python simulate.py 100

鉴于命令数量众多,我想使用 for 循环

for i in {1..100}; do \
    python generate.py $i; python simulate.py $i; \
done

对于作业一个接一个地运行来说非常重要。我做得正确吗?

答案1

是的,你这样做是正确的。您编写的循环将按照您长期列出的确切顺序执行命令,但需要注意的是,一个命令中的错误不会导致循环终止,它将继续执行下一个命令,有效地忽略了错误。

答案2

是的,你是。一种简单的检查方法是回显命令而不是运行它们:

$ for i in {1..5}; do 
     echo python generate.py "$i"
     echo python simulate.py "$i" 
 done
python generate.py 1
python simulate.py 1
python generate.py 2
python simulate.py 2
python generate.py 3
python simulate.py 3
python generate.py 4
python simulate.py 4
python generate.py 5
python simulate.py 5

正如您在上面的示例中所看到的,命令会根据您的需要启动。

相关内容