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

はい、そうすることは正しいです。作成したループは、長期的にリストされた正確な順序でコマンドを実行しますが、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

上記の例に示すように、必要に応じてコマンドが実行されます。

関連情報