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