什麼KSH或bash總結數字的最佳簡單優雅的方式 我的例子是關於我們的命令,但我想找到更好的方式來總結所有號碼shell腳本+數字總和
例如
num1=1232
num2=24
num3=444
.
.
.
let SUM=$num1+num2+num3.........
什麼KSH或bash總結數字的最佳簡單優雅的方式 我的例子是關於我們的命令,但我想找到更好的方式來總結所有號碼shell腳本+數字總和
例如
num1=1232
num2=24
num3=444
.
.
.
let SUM=$num1+num2+num3.........
如何:
num1=1232
num2=24
num3=444
sum=$((num1+num2+num3))
echo $sum # prints 1700
可以使用$(())
語法,但如果你有小數,用awk,或BC/DC做你的數學, 「便攜」。
同意ghostdog74。我曾經使用過$(())內置函數,但是我更改爲bc,因爲我們接收數據的格式不是很「數字化」。下面的表查詢:
[email protected]:/tmp> echo $((017 + 2))
17
[email protected]:/tmp> echo $((17 + 2))
19
[email protected]:/tmp>
似乎在第一種情況下,它理解爲二進制或十六進制數..不太確定。
所以我改爲bc。您可以選擇至極的方式你喜歡:
bc << EOF
$num1 + $num2 + $num3
EOF
或
bc <<< "$num1 + $num2 + $num3"
還有其他庫爾斯方式來做到這一點......但如果你發送更多的細節,比如,如果你是這將是很好執行部門也,你需要添加bc -l
參數,加載數學庫。
如果將雙括號移動到外部,您可以消除最後一個美元符號並自由分隔操作數和運算符(包括變量和賦值運算符)以提高可讀性。
num1=1232
num2=24
num3=444
((sum = num1 + num2 + num3))
((count++))
((sum += quantity))
,除非你使用let
或外(())
形式(或你遞增變量或右手邊做任務)不能使用增量風格的操作(*= /= %= += -= <<= >>= &= ^= |= ++ --
)。