关于shell:-bash:[:=:一元运算符预期。

-bash: [: =: unary operator expected. when no parameter given

本问题已经有最佳答案,请猛点这里访问。

我有我的shell脚本,下面是myscript.sh

1
2
3
4
#!/bin/sh
if [ $1 ="-r" ]; then
    echo"I am here"
fi

如果我使用. myscript.sh -r运行,它与消息I am here很好地工作。

但如果我只是和. myscript.sh一起跑,它会抱怨的。

江户十一〔四〕号

我的剧本里少了什么?


您需要在$1左右添加报价。

1
2
3
if ["$1" ="-r" ]; then
    echo"I am here"
fi

当$1为空时,如果是语法错误的[="-r"]。


您错过了报价:

1
if ["$1" ="-r" ]; then