gpt4 book ai didi

bash - 在 bash 中处理数字时 [[ ]] 优先于 (( ))

转载 作者:行者123 更新时间:2023-11-29 09:10:22 24 4
gpt4 key购买 nike

只是出于好奇,有没有理由喜欢这样的东西:

while [[ $number -lt 10 ]]

结束

while (( $number < 10 )) 

他们似乎在做同样的事情。我想知道其中之一是否有性能优势,或者 [[ ]] 是否存在一些可移植性问题?

最佳答案

两者都不是标准的,因此可移植性不是问题。如果您只是进行简单的比较,两者之间的区别不大

if [[ $number -lt 10 ]]

if (( number < 10 ))

除了从第二个中删除 $ 的能力(因为所有字符串都被假定为变量并取消引用)和可读性。

当您的条件结合算术和非算术测试时,您可能更喜欢[[...]]:

if [[ $number -lt 10 && $file = *.txt ]]

对比

if (( number < 10 )) && [[ $file = *.txt ]]

如果您的比较涉及一些计算,您可能更喜欢 (( ... )):

if (( number*2 < 10-delta ))

与不必要的复杂

if [[ $(( number*2 )) -lt $(( 10-delta )) ]]

关于bash - 在 bash 中处理数字时 [[ ]] 优先于 (( )),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17238238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com