Bash脚本的行为不像我期望的那样

时间:2014-03-05 20:20:15

标签: bash

我在这里搜索问题并在Google上搜索问题,但我语法中的某些内容搞砸了。任何帮助表示赞赏。

基本上我有另一个设置负载和阈值的函数,以及$ FORCE变量。如果脚本满足第一个或第二个条件,则需要执行“stuff”。变量已正确设置,我在调试时通过脚本中的echo确认了这些变量。

if ([ $LOAD -ge "$THRESH" ] || [ $FORCE=1 ]);
then
    # do some other stuff
fi

从我所看到的情况来看,条件周围的括号间距是正确的。他们不再像以前那样产生bash [: missing]'错误。

脚本运行正常,除了一个问题......它无论如何运行。就像它完全忽略[ $FORCE=1 ]部分一样,尽管我可以看到$FORCE实际上是0。

我应该使用单引号还是其他方法?

1 个答案:

答案 0 :(得分:2)

尝试在=周围添加空格:

if ([ $LOAD -ge "$THRESH" ] || [ $FORCE = 1 ]);
then
    # do some other stuff
fi