一个玩具示例:
我想依次运行以下命令
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
正如您在上面的示例中所看到的,命令会根据您的需要启动。