我想檢查是否有錯誤的最後一條命令,因此將stderr重定向到一個文件並檢查文件中的「錯誤」字符串(只有一個可能的。錯誤在這種情況下)bash:腳本看到的重定向文件'不存在'
我的腳本看起來像下面:
#aquire lock
rm -f /some/path/err.out
MyProgramme 2>/some/path/err.out &
if grep -i "error" /some/path/err.out ; then
echo "ERROR while running MyProgramme, check /some/path/err.out for error(s)"
#release lock
exit 1
fi
「如果」條件是給錯誤的err.out「沒有這樣的文件或目錄」,不過,我可以看到該文件存在。
我錯過了什麼嗎?..任何幫助表示讚賞。謝謝!
PS:我無法使用$檢查退出代碼?因爲它在後臺運行。
感謝您的回答。這裏的程序運行永無止境。除了等待以外的其他方式? – Srikanth
嗯我可能是錯的,但我認爲'>'導致文件被立即創建/截斷? –
@Srikanth如果程序永遠不會結束,那麼您怎麼知道它在哪一點打印「錯誤」?你想等多久?如果「err」文件不存在,您是否要立即退出腳本?我的意思是如果程序永遠運行或很長一段時間,那麼不應該檢查是否在最後或至少定期發生錯誤。 –