特定のファイル名と終了ステータスの存在を確認するにはどうすればよいでしょうか? (失敗した場合は成功するまでループします)

特定のファイル名と終了ステータスの存在を確認するにはどうすればよいでしょうか? (失敗した場合は成功するまでループします)

私は bash スクリプトの初心者で、このシナリオを約 6 時間 Google で検索しましたが、何も見つかりませんでした。必要なものの一部は見つかりましたが、包括的な解決策は見つかりませんでした。

問題は次の通りです。3 つのファイル( file1.txt、) が存在することを確認できるコードを書く必要があります。ただし、先に進む前に、 が書き込みを停止したことを確認する必要があります (これは、3 つのファイルを作成するスクリプトが正常に終了したことを確認するためです)。file2.csvfile3.logfile3.log

これらのファイルの存在を確認するのは、次のようなものを使用すると簡単です。

if [ -f -e /path/to/file/file1.txt && /path/to/file/file2.csv && /path/to/file/file3.log]
then
# somehow check the exit status of file3.log
if [$? !=0]
#somehow loop (maybe every 5 minutes) until $?=0
done

または

また、これらすべてを回避して、最初のスクリプトの終了ステータスを確認するだけでよいのではないかとも考えていました。しかし、何らかの障害が発生してファイルが作成されなかった場合、スキャン プロセスの次の部分に約 2 日かかるため、深刻な問題となるため、確信が持てませんでした...

申し訳ありませんが、これは愚かな質問のようです。私は Google の「if-until-exit-zero-else...」の穴に深く入り込んでいて、ここから何をすればいいのか全くわかりません。

答え1

指定されたプログラムまたはスクリプトが終了したかどうかを確認するには、次のコマンドを使用します。

wait $(pgrep program-name)

関連情報