使用
之间是否有任何差异(性能,兼容性,良好做法等)[[ condition ]] && statement that executes if condition=true
使用像
这样的东西[[ condition ]] || echo 'error'
或
$assets-root: '{replace to your path}/assets';
我一直在使用后者的结构,因为它节省了一些空间。它并不冗长,但我认为我的意图很清楚。
但我的问题是除了冗长之外是否存在差异。如果我必须构造一个更复杂的语句,那么,使用第二种样式,我将不得不在其他样式中嵌套一些括号,这将变得难以阅读。嵌套if语句要容易得多(由于大多数人使用缩进等)。这是使用if,elif,fi的唯一好处吗?
答案 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"