2009九月20
bash 整数测试操作符
bash 提供了算术测试集合。与<和>之类的字符串比较操作符不同。字符串比较操作符比较字符串的词典值,而不是数字值。例如,字符串比较的时候”6″要比”57″大,就像”p”比”ox”大一样,字符串比较时是按照字符串在字典中出现的顺序一样。但是作为整数比较的时候情况则是按整数值比较的。
bash 算术测试操作符:
| 操作符 | 比较 |
|---|---|
| -lt | 小于:less than |
| -le | 小于等于:equal or less than |
| -eq | 等于:equal |
| -ge | 大于等于:equal or greater than |
| -gt | 大于:greater than |
| -ne | 不等于:not equal |
bash 算术测试操作符说明:
如果要在同一条件表达式内将整数测试和其他类型测试结合起来,上面表格中给出的操作符是必须的。然而,shell对只包含整数的条件表达式有单独的语法。这样做效率更佳。因此应该优先使用上面列出的自述测试操作符。
bash 算术测试操作符示例:
以下面的示例简单的说明一下,整数测试操作符,和字符串比较操作符同样语法运行结果的不同:
#/bin/bash
var1='3'
var2='21'
echo "compare as integer:"
if [ $var1 -eq $var2 ]; then
echo "$var1 equal $var2"
else
echo "$var1 not equal $var2"
if [ $var1 -lt $var2 ]; then
echo "$var1 less than $var2"
else
echo "$var1 greater than $var2"
fi
fi
echo "compare as string:"
if [ $var1 = $var2 ]; then
echo "$var1 = $var2"
else
echo "$var1 != $var2"
if [ $var1 \< $var2 ]; then
echo "$var1 < $var2"
else
echo "$var1 > $var2"
fi
fi
var1='3'
var2='21'
echo "compare as integer:"
if [ $var1 -eq $var2 ]; then
echo "$var1 equal $var2"
else
echo "$var1 not equal $var2"
if [ $var1 -lt $var2 ]; then
echo "$var1 less than $var2"
else
echo "$var1 greater than $var2"
fi
fi
echo "compare as string:"
if [ $var1 = $var2 ]; then
echo "$var1 = $var2"
else
echo "$var1 != $var2"
if [ $var1 \< $var2 ]; then
echo "$var1 < $var2"
else
echo "$var1 > $var2"
fi
fi
运行结果如下图:

bash compare vars as integer and string
唠叨:
繁事物极必反,所谓阴极阳生,两仪生四相是也——扯的真远,呵呵。简单的说就是shell方面个人虽然喜欢, 不过也不会像以前一样,一口气写好多同样的内容,不但自己生厌,列位前来捧场的同学看着也烦。
文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/09/20/1479/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
又搞四连发了
[回复]
@bolo
呵呵。好几天没写了,补一下之前的债。呵。
[回复]