首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制语句对比&&,||

控制语句对比&&,||
EN

Stack Overflow用户
提问于 2017-07-20 20:01:50
回答 1查看 52关注 0票数 1

是否有任何区别(性能、兼容性、良好实践等)

代码语言:javascript
复制
if [[ condition ]]
then do something
fi

vs使用类似于

代码语言:javascript
复制
[[ condition ]] && statement that executes if condition=true

代码语言:javascript
复制
[[ condition ]] || echo 'error'

我一直在使用后一种结构,因为它节省了一些空间。这并不冗长,但我认为我的意图已经足够清楚了。

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

EN

回答 1

Stack Overflow用户

发布于 2017-07-21 18:29:31

可能会有更多关于代码审查的主题,但是:

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

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

我的许多shell脚本都以

代码语言:javascript
复制
die() {
    echo "$@" >&2
    exit 1
}

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

代码语言:javascript
复制
test -d "$2" || die "$0: $2 is not a directory"
test -r "$2" && test -x "$2" || die "$0: $2 cannot be read"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45214119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档