2011-11-25 117 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系統早已消失在天空中的大位桶)