如何将bc计算管道传输到shell变量中

6

我在Linux shell上有一个计算,类似于这样

echo "scale=4;3*2.5" |bc

这个程序给了我一个结果,现在我想将这个计算的结果传递到一个变量中,以便稍后在另一个命令中使用。

将结果传递到文件中是可行的,但是传递到变量中却不行。

echo "scale=4 ; 3*2.5" | bc > test.file

所以在伪代码中,我想要做类似于这样的事情

set MYVAR=echo "scale=4 ; 3*2.5" | bc ; mycommand $MYVAR

有什么想法吗?

3个回答

9

您可以在csh中执行以下操作:

set MYVAR=`echo "scale 4;3*2.5" |bc`

或在bash中:

MYVAR=$(echo "scale 4;3*2.5" |bc)

2
MYVAR=`echo "scale=4 ; 3*2.5" | bc`

请注意,Bash不支持非整数值——你无法在Bash中使用7.5进行计算。


不能用 let 做到那个。 - Sven
2
反引号是已弃用的语法,请使用 $() 代替。http://mywiki.wooledge.org/BashFAQ/082 - Alexej Magura

0
 MYVAR=$(echo "scale 4;3*2.5" | bc)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接