expr:非整数参数。如何减去点十进制数

时间:2014-03-25 06:28:10

标签: bash

我试图通过运行以下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

提前致谢。

1 个答案:

答案 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