控制语句vs&&,||

时间:2017-07-20 12:01:50

标签: bash

使用

之间是否有任何差异(性能,兼容性,良好做法等)
[[ condition ]] && statement that executes if condition=true

使用像

这样的东西
[[ condition ]] || echo 'error'

$assets-root: '{replace to your path}/assets';

我一直在使用后者的结构,因为它节省了一些空间。它并不冗长,但我认为我的意图很清楚。

但我的问题是除了冗长之外是否存在差异。如果我必须构造一个更复杂的语句,那么,使用第二种样式,我将不得不在其他样式中嵌套一些括号,这将变得难以阅读。嵌套if语句要容易得多(由于大多数人使用缩进等)。这是使用if,elif,fi的唯一好处吗?

1 个答案:

答案 0 :(得分:0)

可能更多关于Code Review的主题,但是:

if有多个命令或需要then分支时,do something - else表单最有用。

短路版本很好理解,可链接。它主要是一个风格问题,而不是真正的编程问题。

我的许多shell脚本都以

开头
die() {
    echo "$@" >&2
    exit 1
}

然后我可以编写测试,例如:

test -d "$2" || die "$0: $2 is not a directory"
test -r "$2" && test -x "$2" || die "$0: $2 cannot be read"