我在Bash脚本中有两个用于GNU bc的函数。bash bcmath函数
BC_CEIL="define ceil(x) { if (x>0) { if (x%1>0) return x+(1-(x%1)) else return x } else return -1*floor(-1*x) }\n"
BC_FLOOR="define floor(x) { if (x>0) return x-(x%1) else return -1*ceil(-1*x) }\n"
echo -e "scale=2"$BC_CEIL$BC_FLOOR"ceil(2.5)" | bc
这两个函数都能在交互式bc中正常工作。 bc似乎不允许在一行中分隔多个函数;不过,所以我必须回显-n | bc在每个函数的末尾加上换行符。上面的输出是2.5,而不是我得到的预期的3.0,如果我自己输入到bc -i中。似乎bash为每行echo输出调用bc,而不是将它全部回显到单个实例。有没有解决方法?
我得到2.5交互。 – 2010-04-28 05:11:16