0

下面是我的简单 if 命令,它会抛出命令 not found 但它会打印 else 部分值...

-bash-3.00$ if ["$a"="10"]; then echo "hello"; else echo "hi"; fi;

输出:

-bash: [10=10]: command not found
hi

任何人都可以让我知道是什么问题吗?

4

1 回答 1

3

[在/]和谓词表达式之间添加空格:

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
于 2013-10-25T06:13:13.977 回答