相关疑难解决方法(0)

&& 和 || 的混淆使用 运营商

我正在浏览一个/etc/rc.d/init.d/sendmail文件(我知道这几乎从未使用过,但我正在为考试而学习),并且我对&&||运算符感到有些困惑。我已经阅读了它们可以在以下语句中使用的地方:

if [ test1 ] && [ test2 ]; then
     echo "both tests are true"
elif [ test1 ] || [ test2 ]; then
     echo "one test is true"
fi
Run Code Online (Sandbox Code Playgroud)

但是,此脚本显示单行语句,例如:

[ -z "$SMQUEUE" ] && SMQUEUE="QUEUE"
[ -f /usr/sbin/sendmail ] || exit 0
Run Code Online (Sandbox Code Playgroud)

这些似乎使用&&and||运算符来根据测试得出响应,但我无法挖掘有关这些运算符的这种特殊用途的文档。任何人都可以解释这些在这种特定情况下的作用吗?

shell scripting bash control-flow

119
推荐指数
4
解决办法
41万
查看次数

“/bin/[”究竟是如何工作的?

我总是惊讶于文件夹中/bin有一个[程序。

这就是我们在做这样的事情时所说的:if [ something ]

通过[在 shell 中显式调用程序,它会要求提供相应的],并且当我提供右括号时,无论我在括号之间插入什么,它似乎什么都不做。

毋庸置疑,获得有关程序帮助的通常方法是行不通的,即既不可行man [也不行[ --help

shell test

51
推荐指数
3
解决办法
9397
查看次数

标签 统计

shell ×2

bash ×1

control-flow ×1

scripting ×1

test ×1