如何使用bash将数学表达式的计算结果保存到变量中?我的代码如下:
W1=$(bpimagelist -U -d 11/01/2013 00:00:00 -e 11/05/2013 00:00:00 -pt FlashBackup-Windows | tail -n +3 | awk '{s+=$5} END {print s/1024/1024/1024}')
W2=$(bpimagelist -U -d 11/01/2013 00:00:00 -e 11/05/2013 00:00:00 -pt MS-Windows | tail -n +3 | awk '{s+=$5} END {print s/1024/1024/1024}')
echo "$W1+$W2" | bc | awk '{printf "%.02f\n", $1}'
控制台输出:
96.86
我正在寻找类似的代码:
W="$W1+$W2" | bc | awk '{printf "%.02f\n", $1}' (not correct syntax though)
有什么想法吗?
答案 0 :(得分:1)
W3=$( echo $W1+$W2 | bc )
...你试过这个吗?
答案 1 :(得分:0)
两个选项:
使用back tics:
W1 =`command`
使用parens
W1 = $(命令)
您的命令可能与上面的命令一样复杂(例如,多个命令与管道连接)
选项2允许嵌套命令,例如
W1=$(command1 $(command2))
答案 2 :(得分:0)
如果W1
和W2
都是整数,那么这将有效:
(( W = W1 + W2 ))
看起来你可能正在处理浮点数,所以这样的事情可能适用于这种情况:
W="$(bc <<< "${W1} + ${W2}")"