在 bash 中,我可以使用 && 和/或 || 制作测试条件 而不是 if/elif/else 块。
适用时,我倾向于使用 && 和/或 || 而不是构建一个 if 块。一种构造相对于另一种构造是否有任何现实世界的优势?
考虑以下示例:
1)
[[ -f /shared_disk/backups/daily.tar.bz2 ]] && echo "the coast is clear" || echo "run the dump"
Run Code Online (Sandbox Code Playgroud)
2)
if [[ -f /shared_disk/backups/daily.tar.bz2 ]]; then
echo "the coast is clear"
else
echo "run the dump"
fi
Run Code Online (Sandbox Code Playgroud)
您提供的两种形式并不完全相同。
在以下形式中:A && B || C,C将在A或B评估为假时执行。
例如:
$ true && true || echo C
$ true && false || echo C
C
$
Run Code Online (Sandbox Code Playgroud)
这提供了if-then-else形式相对于A && B || C形式的一个现实优势,那就是清晰度。if-then-else表单在做什么更清楚,但您需要了解评估规则才能了解A && B || C表单在做什么。
然而,使用A && B或常常是有益的A || B。这更清晰,并且在运行简单命令时很有用。有时一行而不是三行更清晰,尤其是当您试图接收大量代码时。
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |