首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ksh if循环vs [[ ]] && { cmd1;} || { cmd2;}

ksh if循环vs [[ ]] && { cmd1;} || { cmd2;}
EN

Stack Overflow用户
提问于 2018-06-26 21:15:02
回答 1查看 87关注 0票数 1

我正在开发一个shell脚本,下面的语法可以很好地工作:

代码语言:javascript
复制
if [[ 1 -eq 1 ]] ; then
   [[ 2 -eq 1 ]]
else
   echo hi
fi

调试运行:

代码语言:javascript
复制
+ [[ 1 -eq 1 ]]
+ [[ 2 -eq 1 ]]

如果我收缩语句,它会跳转到else条件:

代码语言:javascript
复制
**[[ 1 -eq 1 ]] && { [[ 2 -eq 1 ]] ; } || echo hi**

调试运行:

代码语言:javascript
复制
+ [[ 1 -eq 1 ]]
+ [[ 2 -eq 1 ]]
+ echo hi
hi

你知道遗漏了什么吗?

非常感谢。相同的

EN

回答 1

Stack Overflow用户

发布于 2018-06-26 22:05:23

你可以这样说:

代码语言:javascript
复制
[[ 1 -eq 1 ]] && { [[ 2 -eq 1 ]] ; true ; } || echo hi

如果第一个测试通过,你进入{...}块,一旦你运行了你想要在其中运行的东西,通过以true结束,你不会继续通过这里的||来代替你的else子句。

问题是。[[ 2 -eq 1 ]]返回false,因此您可以在||之外访问您的echo hi

所有这一切,你可能会看到它看起来有点丑陋,在这种情况下(特别是。因为涉及多个条件,这可能会影响如何评估您的流水线)。好吧,我建议不要省下几个换行符,为了让代码更明显和更易读,请使用较长的形式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51043852

复制
相关文章

相似问题

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