这是我的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
答案 0 :(得分:1)
您在[
之后和]
之前缺少空格。
bash尝试执行名为[/bin/bash
而不是[
的命令(test
),然后找不到该命令并且退出代码为1(false )。所以你最终进入else
案例。