如何在 bash 脚本中表达浮点表达式

如何在 bash 脚本中表达浮点表达式

为什么

a2=100.    
echo 1.1*$a2|bc   

可以在终端上运行,但以下脚本中的 3 个变体则不能:

a2=100.  
echo "  
1.1*$a2|bc  
$(1.1*$a2|bc)  
$((1.1*$a2|bc))  
">x.sh    

答案1

因为您没有将echo语句放入通过管道传输到 的脚本代码中x.sh。第二种变体需要一个额外的echo子shell命令$(...)。第三种变体无效,因为$((...))算术扩展不适用于浮点数。

a2=100.  
echo "  
echo 1.1*$a2|bc;  
echo $(echo 1.1*$a2|bc);
">x.sh    

结果:

# sh x.sh
110.0
110.0

相关内容