如何在括号中得到一个值?

时间:2015-01-02 17:24:08

标签: bash

#!/bin/bash

z=`echo "$a*(1+($p/(100*$g)))^((($j)+($m/12)+($t/365))*$g)" | wcalc -EE`
y=`echo read$z/$k^2 | wcalc`
echo $y

我的第二行进行了计算$z/($k^2),但我需要($z/$k)^2我该怎么做?

1 个答案:

答案 0 :(得分:3)

问题,据我所知,z不是数字,而是= 1.2345形式的某种形式(也就是说,数字前面带有=的字符串)。我认为,使这项工作成功的方法是让z成为一个数字。不幸的是,wcalc似乎没有选项,所以我会使用awk

#                                                  here, at the end ------v
z=`echo "$a*(1+($p/(100*$g)))^((($j)+($m/12)+($t/365))*$g)" | wcalc -EE | awk '{ print $2 }'`
y=`echo "read = ($z/$k)^2" | wcalc` # and perhaps apply a similar transformation here.
echo "$y"

请注意,wcalc将不会记住read的分配,因为该过程会立即结束。我不知道你想用它做什么。