下面是我的简单if命令,它抛出命令未找到,但是它会打印其他部分值......
-bash-3.00$ if ["$a"="10"]; then echo "hello"; else echo "hi"; fi;
输出:
-bash: [10=10]: command not found
hi
任何人都可以告诉我这是什么问题吗?
答案 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