我有一个bash脚本,其中包含以下"if"语句.问题是我不能让它在Debian上运行(它在Fedora和CentOS上运行良好).
if [ $1 == "--daily" ] # <--- line 116
then
countDaily
elif [ $1 == "--monthly" ] # <--- line 119
then
countMonthly
fi
Run Code Online (Sandbox Code Playgroud)
运行之后:
sh /home/kris/countsc.sh --daily
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
/home/kris/countsc.sh: 116: [: --daily: unexpected operator
/home/kris/countsc.sh: 119: [: --daily: unexpected operator
Run Code Online (Sandbox Code Playgroud)
既然你正在使用sh而不是bash,你应该使用一个等于=进行字符串比较,而不是双等==.另外,在测试语句中双引号变量是一个好习惯(尽管这个错误不是由不正确的引用引起的).
比较应该是:
if [ "$1" = "--daily" ]
Run Code Online (Sandbox Code Playgroud)
和
elif [ "$1" = "--monthly" ]
Run Code Online (Sandbox Code Playgroud)