複数のPythonスクリプトを順番に実行する必要がありますが、以前のスクリプトが完了したことを確認したいと思います。 Linuxでこれを行うにはどうすればよいですか?
&&
単にorを使用して;
実行できますか|
?
答え1
コマンド間は、
;
コマンドラインで1つずつ入力したかのように実行されます。以前のスクリプトが完了するまで、スクリプトは開始されません。これは、各コマンド間で改行文字を使用して別の行に割り当てるのと同じです。そして
&&
、同じ効果を得ることができますが、スクリプトはいいえ次の場合に実行どの以前のスクリプトは、ゼロ以外の終了状態(失敗を示す)で終了しました。以下を使用すると、
||
同じ効果が得られます。ただ次の場合に実行みんな以前のスクリプトは、ゼロ以外の終了状態(失敗を示す)で終了しました。を使用すると、
&
すべてのスクリプトがほぼ同時に非同期ジョブ(バックグラウンドジョブ)として実行されます。これはあなたが望むものではありません。を使用すると、
|
すべてのスクリプトをほぼ同時に実行できます。あるスクリプトの標準出力ストリームは、パイプライン内の次のスクリプトの標準入力ストリームにリンクされます。これはあなたが望むものではありません。
「完了」の意味によっては、;
(以前のスクリプトの終了状態に関係なく)または&&
(終了状態に興味があり、以前のスクリプトが実行されていない場合にのみこのスクリプトを実行)を使用したい場合があります。コマンド間の信号エラー。