Bash:如何将参数与if语句进行比较?

时间:2012-04-12 14:26:01

标签: macos bash shell

我正在尝试使用以下代码比较OSX下的bash中的参数...

 #!/bin/bash

if ["$1" == "1"]
then
        echo $1
else
        echo "no"
fi

但我一直收到以下错误

$bash script.sh 1

script.sh: line 3: [1: command not found
no

如何阻止它尝试评估“1”?

1 个答案:

答案 0 :(得分:21)

[是一个测试命令,因此您需要["$1"之间的空格,以及"1"和结束]之间的空格

修改

为了澄清,需要空间,因为[test bash命令的不同语法,因此以下是编写脚本的另一种方法:

#!/bin/bash

if test "$1" == "1"
then
        echo $1
else
        echo "no"
fi

可以进一步简化为

#!/bin/bash
[ "$1" == "1" ] && echo "$1" || echo "no"