Bash判断得到了意想不到的结果

时间:2017-07-19 11:21:00

标签: bash if-statement

这是我的shell脚本的代码:

#! /bin/bash

if ["$SHELL" = "/bin/bash"];then
        echo "this is bash"
elif ["$SHELL" = "aa"];then
        echo "this is aa"
else
        echo "this is not /bin/bash, but $SHELL"
fi

为什么我执行test_bash_03脚本文件得到else结果?不应该是:this is bash

aircraftdeMacBook-Pro:bash_demo ldl$ ./test_bash_03
./test_bash_03: line 3: [/bin/bash: No such file or directory
./test_bash_03: line 5: [/bin/bash: No such file or directory
this is not /bin/bash, but /bin/bash

我回应$SHELL我也得到/bin/bash

aircraftdeMacBook-Pro:bash_demo ldl$ echo $SHELL
/bin/bash

1 个答案:

答案 0 :(得分:1)

您在[之后和]之前缺少空格。

bash尝试执行名为[/bin/bash而不是[的命令(test),然后找不到该命令并且退出代码为1(false )。所以你最终进入else案例。