下面是我的简单 if 命令,它会抛出命令 not found 但它会打印 else 部分值...
-bash-3.00$ if ["$a"="10"]; then echo "hello"; else echo "hi"; fi;
输出:
-bash: [10=10]: command not found
hi
任何人都可以让我知道是什么问题吗?
[
在/]
和谓词表达式之间添加空格:
if [ "$a" = "10" ]; then echo "hello"; else echo "hi"; fi;
# ^ ^
[
是一个程序:
$ which [
/usr/bin/[
没有空格,[10=10]
被识别为程序名并被执行而不是[
.
$ a=10
$ if [ "$a" = "10" ]; then echo "hello"; else echo "hi"; fi;
hello
$ a=20
$ if [ "$a" = "10" ]; then echo "hello"; else echo "hi"; fi;
hi