bash手册中的算术计算部分列出了以下操作符和其他操作:
id++ id--
variable post-increment and post-decrement
++id --id
variable pre-increment and pre-decrement据我所知,在执行其他操作之前,++x和--xx增加或减少了变量?例如,x++
$ x=5; echo $(( ++x / 2 ))
3
$ x=5; echo $(( x++ / 2 ))
2
$ 然而,x++和x--什么时候有用?一般说来,在bash中,变量后增量/递减和前增量/递减之间有什么区别?
发布于 2013-06-13 09:26:17
引用增量和递减算子
在支持两个版本的运算符的语言中,预增量运算符和预递减运算符的操作数增加(或减少) 1,表达式的值是由此产生的递增(或递减)值。相反,后增量和后递减运算符将其操作数的值增加(或减少) 1,但表达式的值是操作数(或递减)操作之前的操作数的原始值。
所以,你会发现:
$ x=5; echo $(( x++ / 2 ))
2
$ echo ${x} // The effect of post-increment is visible here
3发布于 2013-06-13 09:39:09
后操作和预操作都会改变(增加/减少)变量的值。
不同之处在于它们所评估的内容:在变化后对变量的值进行预操作评估,以及将后操作计算到更改前的值。
当未使用评估值时,没有差别。也就是说,这两条线具有相同的效果:
((x++))
((++x))操作前和后操作都用于消除对明确分配的需要。即缩短代码。因此,与其写这篇文章:
x=$((x + 1))
y=$((x * 5))你可以这样写:
y=$((++x * 5))相反,与之相反的是:
y=$((x * 5))
x=$((x + 1))你可以这样写:
y=$((x++ * 5))这些操作通常用于循环体和循环控制表达式中。
https://stackoverflow.com/questions/17083474
复制相似问题