所以我不习惯shell脚本。我有一个ksh脚本,有一个类似于下面的if coniditon。
if [[ "asdasd" -eq "asdas()d" ]]; then
然而,当它运行时它会抱怨
./closedown[36]: asdas()d: unexpected `('
我试图逃避它
if [[ "asdasd" -eq "asdas\(\)d" ]]; then
然后它抱怨
./closedown[36]: asdas\(\)d: unexpected `\'
希望有人可以帮助我,欢呼
答案 0 :(得分:4)
-eq
用于数字比较,需要双方数字。
答案 1 :(得分:0)
除了上面关于使用'='进行文本比较而不是'-eq'(用于数值比较)的注释之外,双引号允许shell尝试解释你传递给if条件的内容。
将其更改为使用单引号 - 如下所示:
root@bumblebee> [[ 'asdasd' = 'asdas()d' ]] && echo 'Hello:)' || echo 'World:('
World:(
root@bumblebee>