我有我的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
我的剧本中缺少什么?
答案 0 :(得分:6)
您需要在$ 1附近添加引号。
if [ "$1" = "-r" ]; then
echo "I am here"
fi
当$ 1为空时,如果[=" -r"]这是一个语法错误,你就得到了。
答案 1 :(得分:5)
您错过了报价:
if [ "$1" = "-r" ]; then