检查多个语句时 bash 条件的最佳实践是什么?

2024-03-04

鉴于您尝试检查变量是否为空且不是其他值,如以下代码所示:

if [ ! -z "$foo" ] && [[ ${foo} != "bar" ]]; then

实现这一目标的最佳实践是什么?我见过 bash 条件语句有多种写法,包括以下......

if [[ ! -z "$foo" && ${foo} != "bar" ]]; then

我知道使用单括号和双括号时有区别,我更关心何时放置&& or ||括号内或括号外。


Put &&/||括号内为[[ ]]。外面也可以接受。

Put &&/||外括号为[ ]。内部是不允许的。

这是因为&&根据返回值将普通命令绑定在一起,例如

wget file && echo "Success"

[尽管名字很有趣,但它是一个常规命令,并且遵循与例如相同的规则。wget or echo.

[ foo || bar ]是两个命令,[ foo and bar ],两者均无效。

[[ .. ]]另一方面不是普通命令而是特殊的 shell 语法。[[ foo || bar ]]是单个命令,并进行相应解释。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查多个语句时 bash 条件的最佳实践是什么? 的相关文章

随机推荐