我正在尝试使用以下代码比较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)