我检查在最后一行文件中的错误信息,我想有一个“是”的结果,如果有一个“错误” 。我的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