-bash:[:=:应为一元运算符。未给定参数时

-bash:[:=:应为一元运算符。未给定参数时,bash,shell,Bash,Shell,下面是我的shell脚本,myscript.sh #!/bin/sh if [ $1 = "-r" ]; then echo "I am here" fi 如果我使用.myscript.sh-r运行,它可以很好地处理消息我在这里 但是如果我只是使用.myscript.sh运行,它会抱怨 -bash:[:=:应为一元运算符 我的脚本中缺少了什么?您缺少了以下引用: if [ "$1" = "-r" ]; then 你需要加上1美元左右的报价 if [ "$1" = "-r" ]; th

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

#!/bin/sh
if [ $1 = "-r" ]; then
    echo "I am here"
fi
如果我使用
.myscript.sh-r
运行,它可以很好地处理消息
我在这里

但是如果我只是使用
.myscript.sh
运行,它会抱怨

-bash:[:=:应为一元运算符


我的脚本中缺少了什么?

您缺少了以下引用:

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

你需要加上1美元左右的报价

if [ "$1" = "-r" ]; then
    echo "I am here"
fi
当$1为空时,您将得到if[=“-r”],这是一个语法错误