【发布时间】:2014-09-01 21:09:26
【问题描述】:
这似乎是一个简单的问题,我想知道为什么谷歌搜索没有提供任何帮助——在 StackOverflow 中也没有,在教程中也没有。我只需要使用 bash 检查条件是否为假。
在我的发现中我尝试过
if ! [ 0==2 ]; then echo Hello; fi
和
if [ ! 0==2 ]; then echo Hello; fi
他们都不打印Hello。
我只发现了两个类似的问题,但两种情况的最终答案都是重组代码以不使用“假”条件。
【问题讨论】:
-
我建议你阅读manual page。
-
[ 0 != 2 ] && echo "hello"成功了。 -
@JoachimPileborg
test是一个完全独立的命令。test和if有什么区别,比如我应该改用test? -
如果您查看链接的手册页,您将看到
[是test命令的别名。事实上,if命令只是检查另一个命令的结果,在本例中是test命令。这些天它可能都由 shell 内部处理,但你应该看到if只是一个普通命令,它反过来又调用另一个命令。 -
我不同意 Joachim 将
if视为命令的建议。if是 shell 语法中的一个关键字,它引入了一个条件子句。它强调不是一个命令。在某些时候,有人认为引入命令[是个好主意,这样if [ ...在shell 中看起来是两个语法符号,但[不是 的一部分shell 语法。
标签: linux bash shell unix conditional-statements