我通过make使用以下parameter passing给shell脚本:
smktestrun: smktest @../projects/test.sh $(TESTARGS)
然后调用Makefile
$ make smktestrun TESTARGS="-abc"
而我的代码在shell脚本中是:
if [ "$1" == "-abc" ]; then ./test123 else ./test678 fi
但是我得到以下错误:
声明 – 一个bash不适用于mac os x
与logrotate无限日志
禁用TCP延迟确认
+ [ -abc == -abc ] 15:15:08 [: 1: -abc: unexpected operator
所以代码的其他部分被执行。 我也试过if [ "$1" -eq "-abc" ]; 但是这也给了一个类似的错误。
有人能帮我弄清楚是什么问题?
谢谢。
Ubuntu的python-dateutil安装/升级问题。 dateutil.zoneinfo.gettz返回nonetype
Linux系统上的Windows DLL
Golang Mac OSX为Docker机器构build
init和bashterminal进程之间的关系
正确的运算符是= ,not ==或-eq :
if [ "$1" = "-abc" ]; then ./test123 else ./test678 fi
它看起来像你使用一个无效的实现[ 。 无论是内核调用,还是/usr/bin/[ 。 作为一种解决方法,您可能可以这样做:
if test x"$1" = x"-abc"; then
请注意,使用==作为运算符来test是不可移植的。 用=代替。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。