次のようなbashループがありますfor
。
for file in *.mp4; do
command1 "${file}" && command2 "${file}"
done
command2
これにより、期待どおりに成功する限り実行が可能になります。command1
今私が望むものはループすることですcommand1
完了のみ待つ、しかし待つ必要はありませんcommand2
繰り返す前に完了しました。これを行う方法はありますか?
私は成功せずに試しました。
command1 && command2 &
- 終了を待たずにcommand1
並列に実行command1 && ( command2 & )
-command2
出るまでお待ちください。必要ありません。
答え1
少し詳しくは、次のようにすると動作します。
for file in *.mp4; do
if command1 "${file}"; then
command2 "${file}" &
fi
done
答え2
いいね@muruの返信それを主な答えとして受け入れます。
同様の方法も見つけましたが、これに代わるものとしてここに投稿します。
for file in *.mp4; do
command1 "${file}"
[ "${?}" -eq 0 ] && command2 "${file}" &
done