簡體   English   中英

如何在Shell腳本中添加變量中的數字?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM