[英]How to add the numbers from a variable in a shell script?
我的變量$a
樣本內容為12 11 45 20 67
。 如何將以上五個數字相加/相加並將其存儲在另一個名為$b
變量中?
不更換任何東西
a="12 11 45 20 67"
for i in $a; do ((b+=$i)); done ; echo $b
155
#!/bin/bash
a="12 11 45 20 67"
abc=' ' read -r -a arr <<< "$a"
b=0
for i in ${arr[@]}; do
let b+=$i
done
echo "Total: $b"
正如卡米爾(Kamil)在評論中指出的那樣,您將必須以某種方式處理內容,以便用加號替換空格,有些可能性
echo "$a" | sed 's/ /+/g'
echo "$a" | tr ' ' +
echo "${a// /+}"
現在我們必須對此進行評估。 您可以使用bc
命令或bash
的內置數學功能:
echo "$a" | tr ' ' + | bc # like Kamil suggested
echo $(( ${a// /+} )) # bash builtins, probably faster
要將命令的輸出存儲在變量中,請像這樣使用var=$( command )
b=$(echo "$a" | tr ' ' + | bc)
或僅適用於bash內部運算的更快方法:
echo "$a" # 12 11 45 20 67
(( b = ${a// /+} ))
echo "$b" # 155
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.