如何在Shell脚本中添加变量中的数字?

时间:2019-01-25 11:20:31

标签: linux bash shell sum

我的变量$a的示例内容为12 11 45 20 67。如何将以上五个数字相加/相加并将其存储在另一个名为$b的变量中?

3 个答案:

答案 0 :(得分:2)

不更换任何东西

a="12 11 45 20 67"
for i in $a; do ((b+=$i)); done ; echo $b
155

答案 1 :(得分:1)

interface ReceiverListener {
    public void doSomething(String arg1, String arg2);
}

答案 2 :(得分:0)

正如卡米尔(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