我正在浏览一个/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||运算符来根据测试得出响应,但我无法挖掘有关这些运算符的这种特殊用途的文档。任何人都可以解释这些在这种特定情况下的作用吗?
我总是惊讶于文件夹中/bin有一个[程序。
这就是我们在做这样的事情时所说的:if [ something ]?
通过[在 shell 中显式调用程序,它会要求提供相应的],并且当我提供右括号时,无论我在括号之间插入什么,它似乎什么都不做。
毋庸置疑,获得有关程序帮助的通常方法是行不通的,即既不可行man [也不行[ --help。