在Unix命令提示符中IF条件抛出错误

时间:2013-10-25 06:10:52

标签: linux bash shell unix

下面是我的简单if命令,它抛出命令未找到,但是它会打印其他部分值......

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

输出:

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

任何人都可以告诉我这是什么问题吗?

1 个答案:

答案 0 :(得分: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