Bash 条件语句的双括号构造何时有用?

Bash 条件语句的双括号构造何时有用?,bash,shell,conditional,Bash,Shell,Conditional,我一直在阅读这篇文章,试图了解更多关于什么是最佳实践的知识,并且遇到了这种构造条件句的方法: #condition?result-if-true:result-if-false (( var0 = var1<98?9:21 )) # ^ ^ # if [ "$var1" -lt 98 ] # then # var0=9 # else # var0=21 # fi #条件?结果如果为真:结果如果为假 ((var0=var1在极客眼中可能看起来很酷,

我一直在阅读这篇文章,试图了解更多关于什么是最佳实践的知识,并且遇到了这种构造条件句的方法:

#condition?result-if-true:result-if-false

(( var0 = var1<98?9:21 ))
#                ^ ^

# if [ "$var1" -lt 98 ]
# then
#   var0=9
# else
#   var0=21
# fi
#条件?结果如果为真:结果如果为假

((var0=var1在极客眼中可能看起来很酷,但很难阅读。这没有什么好处。所以坚持使用if-then-else,或者像你在问题中所做的那样对其进行大量评论。

它们完全相同。使用你觉得最清楚的东西。顺便说一句,ABS通常被认为是一个非常糟糕的参考选择——这是臭名昭著的in一些展示坏习惯的圈子(也就是说,ABS:bash::W3Schools:JavaScript)顺便说一下,这是所谓的,它存在于多种语言中。不管语言是什么,我尽量只使用三元运算符,当术语很短时,否则它比<代码>更难阅读。如果……< /COD>样式源于Bourne Shell。Korn Shell和Bash为文件和字符串引入了[[
cond
]],为算术表达式引入了((
cond
),这是对[
cond
]的改进这是有问题的,除非你重复引用你的论点。只有极客才会读bash脚本。世界其他地方更喜欢呼啸山庄。