[英]Bash, If file is empty leave script if not continue
我的bash腳本中的第一個命令是來自現有文件的grep,以查找錯誤。 EX:
cat /usr/local/avamar/var/ddrmaintlogs/ddrmaint.log | grep "hfscheck-finish Backup directory missing for backup" > PartialBackups
cat PartialBackups | sed -n -e 's#^.*cur/ ##p' >P2
cat P2 | sed 's#/# / /#g' > P3
cat P3 | awk {'print $1'} >> S1
cat P3 | awk {'print $3'} >> S2
如果newfile為空(PartialBackups文件),我想退出腳本,否則,我希望腳本繼續
我怎樣才能做到這一點?
將grep
放在if
語句中。
if ! grep -err /file >> newfile; then
exit
fi
newfile
可能為空,也可能不為空-您首先要附加一個非空文件-但是grep
如果未向文件中添加任何內容,則其退出狀態為非零。
您可以使用
if ! [ -s "/file" ];then
exit
fi
或更短,語法不太明顯
test -s "/file" && exit
test -s
測試文件是否存在並且大小不為零。 第二種語法被利用,即二進制運算符只求所需的值,因此正test
返回的值將阻止exit
運行,因為無論如何該表達式都是假的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.