Bash运算符:平方先前计算的变量,然后将其存储在新变量中

时间:2017-09-20 16:41:33

标签: bash variables store operator-keyword exponent

我正在使用bash为FSL(一种成像软件)编写脚本。这完全是通过命令行,因此编写脚本很简单。

我很难将以前计算的变量平方,然后将其存储为新变量:

varStdBase=$(fslstats ${varBase%.nii.gz}_MAX100.nii.gz -S)
echo "Std Dev. is: "$varStdBase

varS1=$(echo '$varStdBase^2'|bc)
echo "variance is: "$varS1 

我正在努力争取varS1。我一直收到错误消息:

syntax error: invalid arithmetic operator (error token is ".886438")

我也试过了:

varS1=$(($varStdBase**2))

let varS1=$varStdBase**2 

也:

varS1=$(echo $(($varStdBase**2)))

而且更多,一切都无济于事......

我努力想弄清楚bash想要做这个简单任务的语法。

谢谢!

1 个答案:

答案 0 :(得分:1)

此:

echo '$varStdBase^2'|bc

给出错误,因为单引号不允许扩展变量值。但是使用双引号

echo "$varStdBase^2"|bc

e.g。

$ a=123
$ echo "$a^2"|bc
15129

(错误消息语法错误:无效算术运算符(错误标记为“.886438”)来自bc可执行文件,请注意)