簡體   English   中英

Bash,如果文件為空,則離開腳本,如果不繼續

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM