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