我正在尝试使用以下代码比较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”?
答案 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"