我的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文件)我想退出脚本,如果不是我想让脚本继续
我该怎么做?
答案 0 :(得分:1)
将grep
放入if
声明。
if ! grep -err /file >> newfile; then
exit
fi
newfile
可能为空,也可能不为空 - 您要附加一个可能非空的文件 - 但grep
如果不是,则{0}}将具有非零退出状态向文件添加任何内容。
答案 1 :(得分:1)
您可以使用
if ! [ -s "/file" ];then
exit
fi
或更短,语法不太明显
test -s "/file" && exit
test -s
测试文件是否存在且大小非为零。第二种语法是利用,二元运算符只根据需要进行评估,因此test
的正返回值会阻止exit
运行,因为表达式无论如何都会为false。