学习bash脚本编写时遇到的问题

问题

image
1、使用bc命令输出小数。当第一位数字为0时,输出为空,结果只能显示为.5(如10/20)。有什么解决办法吗?

2、使用awk命令输出小数。使用awk命令时必须得新定义参数进行传参,或先使用echo输出参数值吗?

3、使用awk命令输出小数。定义输出小数位数时,使用如下命令,为什么会将%.2f打印出来?
命令:echo awk -v x="$a" -v y="$b" 'BEGIN{print "%.2f\n " x/y}'

4、使用awk命令输出小数。使用上述BEGIN命令后,没有其他操作,使用BEGIN命令的目的是什么?如果想在输出x/y的值之前输出汉字“使用awk命令计算”,可以实现吗?该怎么写命令呢?

  1. 程序设计如此,换别的命令。
printf "%.2f\n" `echo "scale=2;10/20"|bc`
  • scale 控制小数点后面的位数

  1. 不用,不用,看第4个。

  2. 需要使用 printf

  1. 其他操作
echo 10 20 | awk '{printf "%0.2f\n",$1/$2}'

  1. 使用 BEGIN 就不用 echo 命令了,因为 awk 默认只处理行,我们用 BEGIN 的时候可以不指定行。
awk 'BEGIN{printf "使用awk命令计算:%.2f\n", 10/20}'