在bash中添加数字(在zsh中有效)

时间:2019-01-20 20:47:16

标签: bash shell

为什么...

sum=0; for i in 1 2 3 4; do echo "$i" | sum=$((sum+i)); done; echo $sum

...在zsh中工作正常,但在bash中工作不正常?也许是因为bash不支持浮点运算?我也尝试过...

sum=0; for i in 1 2 3 4; do echo "$i" | awk '{sum+=$1}'; done; echo $sum

...但是这两种方法都不起作用(这在macOS 10.14.2上)。我发现了几个相关的问题(例如thisthis),但这个问题仍然存在。

1 个答案:

答案 0 :(得分:2)

有一个错误的“ |”

sum=0; for i in 1 2 3 4; do echo "$i" ; sum=$((sum+i)); done; echo $sum  
1
2
3
4
10

第二个示例不起作用,因为每次重复循环时都要调用awk,因此不会存储sum的值。