2011-11-25 116 views
1

指令为什么我的bash如果失败?

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 

我期待NOT FOUND但是又找到

+1

你有if语句之前试过'回声$ FAIL'? –

回答

8

你必须把周围的=操作空间在[ ... ]表达;你写的是解释为[ string ],它测试string是否非空。

但是在这里你不需要反引号和字符串比较。试试这个:

if grep -q shutting log.log 
then echo FOUND 
else echo NOT FOUND 
fi 

(。值得庆幸的是,这并没有-q选项grep系统早已消失在天空中的大位桶)