如果条件不接受括号,则为ksh脚本

时间:2014-08-15 09:24:26

标签: shell scripting ksh

所以我不习惯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 `\'

希望有人可以帮助我,欢呼

2 个答案:

答案 0 :(得分:4)

-eq用于数字比较,需要双方数字。

答案 1 :(得分:0)

除了上面关于使用'='进行文本比较而不是'-eq'(用于数值比较)的注释之外,双引号允许shell尝试解释你传递给if条件的内容。

将其更改为使用单引号 - 如下所示:

root@bumblebee> [[ 'asdasd' = 'asdas()d' ]] && echo 'Hello:)' || echo 'World:('
World:(

root@bumblebee>