bash if子句中的算术语句

时间:2016-06-18 13:06:45

标签: bash shell math

关于上述主题的简短问题:

我正在尝试使用我在if语句中读取的值:

if [ $value1 -lt $value2 -a $value1 is -ge $value2/2 ] 

如何在不事先制定方程式的情况下将一个值与另一个值进行比较?

2 个答案:

答案 0 :(得分:4)

使用Bash算法:

if (( value1<value2 && value1>=value2/2 )); then

答案 1 :(得分:0)

POSIX版本(也适用于bash,虽然比使用算术语句更笨拙)

if [ "$value1" -lt "$value2" ] && [ "$value1" -ge $(( "$value2" / 2)) ]

(顺便说一句,不要将-a用于逻辑AND;它是POSIX标准的扩展,不能保证所有兼容shell都能实现。)