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

Awa*_*ias 7 macos bash shell

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

 #!/bin/bash

if ["$1" == "1"]
then
        echo $1
else
        echo "no"
fi
Run Code Online (Sandbox Code Playgroud)

但我不断收到以下错误

$bash script.sh 1

script.sh: line 3: [1: command not found
no
Run Code Online (Sandbox Code Playgroud)

如何阻止它试图评估"1"?

Ale*_*lex 23

[是一个测试命令,所以你需要之间的空间["$1"之间的空间,以及"1"和闭幕]

编辑

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

#!/bin/bash

if test "$1" == "1"
then
        echo $1
else
        echo "no"
fi
Run Code Online (Sandbox Code Playgroud)

哪个可以进一步简化为

#!/bin/bash
[ "$1" == "1" ] && echo "$1" || echo "no"
Run Code Online (Sandbox Code Playgroud)