命令
grep shutting log.log
什么都不返回。
我的脚本如下
#!/bin/bash
FAIL=`grep shutting log.log`
if [ "$FAIL"="Binary file log.log matches" ]; then
echo FOUND
else
echo NOT FOUND
fi
我期待找不到但得到FOUND
答案 0 :(得分:8)
您必须在=
表达式中放置[ ... ]
运算符周围的空格;您所写的内容被解释为[ string ]
,它会测试string
是否为非空。
但是你根本不需要反引号或字符串比较。试试这个:
if grep -q shutting log.log
then echo FOUND
else echo NOT FOUND
fi
(值得庆幸的是,那些没有-q
grep
选项的系统早已进入了天空中的大桶。)
答案 1 :(得分:1)
在测试中,您需要=
周围的空格:
#!/bin/bash
FAIL=`grep shutting log.log`
if [ "$FAIL" = "Binary file log.log matches" ]; then
echo FOUND
else
echo NOT FOUND
fi