我想写一个bash脚本,我需要做一些浮点数学。基本上我想要做这样的事情:Bash脚本和BC
NUM=$(echo "scale=25;$1/10" | bc)
if [ $? -ne 0 ]
then
echo bad
fi
我遇到的问题是$?倾向于保存回声程序的输出而不是bc调用。有没有办法将bc程序的输出保存到变量中?
编辑:
感谢您的快速回复。这是查看问题的另一种方法。说我修改剧本一点点,所以它看起来是这样的:
#!/bin/bash
NUM=$(echo "scale=25;$1/10" | bc)
if [ $? -ne 0 ]
then
echo bad
exit
fi
echo "$NUM"
当用户输入一个正常的浮点值,它工作正常:
bash script.sh 1.0
输出:
.1000000000000000000000000
但是,当用户输入的值不正确时,脚本无法恢复:
bash script.sh 1.0a
输出:
(standard_in) 1: parse error
我想要做的就是它正常退出。
请记住,'NUM的成功回显是$ NUM'会覆盖$中的值吗?从'$(echo ... | bc)'命令。 – 2010-02-25 06:04:15
是的,谢谢你的纠正。 – ghostdog74 2010-02-25 06:07:01
我在上面澄清了我的帖子。感谢awk的提示。如果我不能上班,我必须检查出来。 – LandonSchropp 2010-02-25 06:48:17