我正在尝试编写一个 bash 脚本,我需要做一些浮点数学运算。基本上我想做这样的事情:
NUM=$(echo "scale=25;$1/10" | bc)
if [ $? -ne 0 ]
then
echo bad
fi
我遇到的问题是 $? 倾向于保存 echo 程序的输出,而不是 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
我想做的是让它优雅地退出。