微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Shell脚本:比较中的错误Linux

我通过make使用以下parameter passing给shell脚本:

smktestrun: smktest @../projects/test.sh $(TESTARGS)

然后调用Makefile

$ make smktestrun TESTARGS="-abc"

而我的代码在shell脚本中是:

if [ "$1" == "-abc" ]; then ./test123 else ./test678 fi

但是我得到以下错误

如何使用PHP将.NET源文件编译为可执行文件

声明 – 一个bash不适用于mac os x

与logrotate无限日志

设置一个gdb退出断点不工作?

禁用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

为每个用户创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] 举报,一经查实,本站将立刻删除。

相关推荐