Shell脚本=命令“testing”=简单的问题

启动脚本的摘录如下所示:

ENABLED = 1

testing“$ ENABLED”!=“0”|| 退出0

问题是,无论Enabled设置为0还是1,脚本总是在该行退出。 我查了一下“man test”,就我所知,testing总是评估expression式,然后用返回码退出(!!)? 它是否正确。 那么这个脚本在这一行里总是会退出,不pipe这个variables的值是什么? (所以它的越野车)。

谢谢!! 延

#!/bin/bash ENABLED=1 test "$ENABLED" != "0" || exit 0 echo "wasn't zero" 

当我运行这个,我得到

 [madhatter@risby tmp]$ ./foo wasn't zero 

所以,在我看来,也是

  • 你正在使用一个奇怪的解释器(你正在运行这个shell),或者
  • 你正在捡起错误的`test`(你可以做一个`testing`并告诉我们结果,或者明确地使用`/ usr / bin / test`?
  • (对此抱歉)你错了,没有到达下一行(正如Janne上面所说的,我们能否看到更多的shell脚本,或者你可以在testing之后立即使用像我的echo语句那样的单线金丝雀?

那个testing语句基本上说“如果$ ENABLED被设置为0以外的东西,退出代码为0(这通常意味着在这个美妙的Linux / Unix世界中是OK的”)。

这是否澄清你呢? 没有看到完整的启动脚本,很难再告诉你:-)