什么是最简单优雅的方式来总结数字在ksh或bash我的例子是关于let命令,但我想找到更好的方法来汇总所有数字
例如
num1=1232
num2=24
num3=444
.
.
.
let SUM=$num1+num2+num3.........
Run Code Online (Sandbox Code Playgroud)
cod*_*ict 24
怎么样:
num1=1232
num2=24
num3=444
sum=$((num1+num2+num3))
echo $sum # prints 1700
Run Code Online (Sandbox Code Playgroud)
同意 Ghostdog74 的观点。我曾经使用过 $(( )) 内置函数,但我改为 bc 因为我们接收数据的格式不是很“数字格式”。检查如下:
jyzuz@dev:/tmp> echo $(( 017 + 2 ))
17
jyzuz@dev:/tmp> echo $(( 17 + 2 ))
19
jyzuz@dev:/tmp>
Run Code Online (Sandbox Code Playgroud)
似乎在第一种情况下它理解为二进制或十六进制数字..不太确定。
所以我改成了bc。您可以选择您喜欢的方式:
bc << EOF
$num1 + $num2 + $num3
EOF
Run Code Online (Sandbox Code Playgroud)
或者
bc <<< "$num1 + $num2 + $num3"
Run Code Online (Sandbox Code Playgroud)
还有其他很酷的方法可以做到这一点...但是如果您发送更多详细信息,例如如果您也执行除法,则需要添加bc -l
参数来加载数学库。
归档时间: |
|
查看次数: |
44499 次 |
最近记录: |