我正在尝试编写一个脚本,如果文件中没有特定字符串,它会执行某些操作。
我知道为了检查字符串是否可用,我们可以执行以下操作:
if grep -qi "sms" $FILE; then
但是如何将!
运算符与shell命令结合使用?
答案 0 :(得分:1)
只需将其添加到您的条件前面即可进行评估:
if ! grep -qi "sms" $FILE; then echo "yes"; fi
^
$ cat a
hello
bye
$ if ! grep -qi "sms" a; then echo "sms not found"; fi
sms not found
答案 1 :(得分:0)
!
使"成功"成为"失败"从壳的角度来看,反之亦然。在shell中,您还可以使用大括号&&
使用||
(逻辑和操作),{ ... }
(逻辑或操作)和组表达式。例如:
{ grep root /etc/passwd && ! grep user /etc/passwd; } && echo ok || echo not ok
请务必将;
放在}
之前。有关详细信息,请参阅man sh
。
请注意,上面是一个带有if-else-like逻辑的普通shell表达式。如果您想使用test
命令或[
或[[
,那么您还可以使用其他类型的分组,布尔算术和其他功能。请参阅man test
。