我檢查在最後一行文件中的錯誤信息,我想有一個「是」的結果,如果有一個「錯誤」 。我的shell腳本如下圖所示:
-bash: [: @: binary operator expected
在最後一行的錯誤信息是象下面這樣::
[aaa,bbb,ccc, Error.ddd @ ]
[ $(tail -1 error.log | grep -E "Error") ] && echo "yes"
然後我在標題中得到了錯誤像上面我認爲這是因爲[@]格式內容導致此錯誤的錯誤消息。但我不知道如何解決它。有沒有人知道如何處理這個[@]問題。非常感謝
@csiu,非常感謝您的快速回復。
這裏的技巧是使用雙「[」,如下:
[[ $(tail -1 error.log | grep -E "Error") ]] && echo "yes"
'[]'是做一些比較,你只是給一塊文本,所以對於bash而言[@]'是不能解釋的。 – fedorqui
如何使用雙「[」和「]」? '[[$(tail -1 error.log | grep -E「Error」)]] && echo「yes」' – csiu
@fedorqui,我認爲grep -E是用於比較。 – zhihong