我是一個 bash 腳本新手,已經在谷歌上搜尋了這個場景大約六個小時,但毫無結果。我找到了我需要的部分,但沒有全面的解決方案。
問題是:我需要寫一些程式碼來檢查 3 個檔案是否存在(file1.txt
、file2.csv
和file3.log
)。不過,在繼續之前,我需要確認file3.log
已停止寫入(這是為了確認建立 3 個檔案的腳本已成功完成)。
使用以下方法檢查這些文件是否存在似乎很容易:
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 天...
抱歉,如果這看起來像是一個愚蠢的問題,我在谷歌“if-until-exit-zero-else...”的洞裡太深了,我不知道從這裡該做什麼。
答案1
若要檢查指定程式或腳本是否已完成,請使用下列命令:
wait $(pgrep program-name)