我试图通过运行以下bash脚本来减去两个数字:
#!/bin/bash -x
cur_length=`cat length.txt`
cur_pos=`cat pos.txt`
diff=`$(expr $cur_length - $cur_pos)`
echo "$diff"
但是输出说expr有一些问题:
+++ expr 235.68 - 145.9
expr: non-integer argument
+ diff=
+ echo ''
我在网上搜索过“expr:non-integer argument”,但没有涉及点十进制数字。 我怎样才能减去这样的数字? 235.68 - 145.9
提前致谢。
答案 0 :(得分:6)
Bash不做分数,只做整数。请改用bc
:
$ echo '235.68 - 145.9' | bc
89.78
当然,这个结果可以放在shell变量中,就像你使用expr
一样:
$ diff="$(echo '235.68 - 145.9' | bc)"
$ echo $diff
89.78