Linux 非整数的Bash If语句不起作用

Linux 非整数的Bash If语句不起作用,linux,bash,if-statement,Linux,Bash,If Statement,我有一个bash脚本,其中有一个if语句,我无法开始工作: 1 #!/bin/bash 2 3 echo "Please provide expenses for time period specified: " 4 read expenses 5 6 rev_pa=$(psql -U postgres -d crewdb -t -c "SELECT SUM(price) FROM work WHERE date_linkid BETWEEN 100 AND 500;") 7 8 blah=$(

我有一个bash脚本,其中有一个if语句,我无法开始工作:

1 #!/bin/bash
2
3 echo "Please provide expenses for time period specified: "
4 read expenses
5
6 rev_pa=$(psql -U postgres -d crewdb -t -c "SELECT SUM(price) FROM work WHERE date_linkid BETWEEN 100 AND 500;")
7
8 blah=$(echo "$rev_pa-$expenses" | bc)
9
10 if [ "$blah" -lt 0 ]
11 
12 then
13        echo "Total expenses of $expenses exceeds total revenue of $rev_pa for the specified time period."
14
15 fi
我使用expenses=10000,rev_pa=12208.20作为数据库输出。我收到的错误消息是:

./bash.txt: line 10: [: 12208.20: integer expression expected

有人知道我如何让这个if语句在bash中工作吗?谢谢您的帮助。

12208.00不是整数值。
-测试中的lt(和其他)必须是整数。

这是否回答了您的问题:?
test
(和
[
)只做整数运算。只需在
bc
中进行比较:
echo“$revu pa-$expenses>0”|bc
谢谢William Pursell。这就解决了问题!OP知道它们的值不是整数——这就是为什么他们在问题标题中加上“非整数”。另外,请参阅的“回答好问题”部分,包括关于“以前被问过并回答过多次”的问题的要点。