我有我的 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
我的脚本中缺少什么?
答案
您需要添加 1 美元左右的报价。
if [ "$1" = "-r" ]; then
echo "I am here"
fi
当 $1 为空时,您会得到 if [ = “-r”] 这是一个语法错误。