-bash:[:=:一元运算符预期。没有参数时

时间:2017-03-06 23:04:36

标签: bash shell

我有我的shell脚本,myscript.sh

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

如果我使用. myscript.sh -r,则可以使用消息I am here

但如果我只使用. myscript.sh,则会投诉

-bash: [: =: unary operator expected

我的剧本中缺少什么?

2 个答案:

答案 0 :(得分:6)

您需要在$ 1附近添加引号。

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

当$ 1为空时,如果[=" -r"]这是一个语法错误,你就得到了。

答案 1 :(得分:5)

您错过了报价:

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