shell教程
OutOfMemory.CN技术专栏-> shell-> shell教程-> 33.3. 测试和比较: 另一种方法

33.3. 测试和比较: 另一种方法

对于测试,[[]]结构可能比[]更合适.同样地,算术比较可能用(())结构更有用.a=8#下面所有的比较是等价的.test"$a"-lt16&&echo"yes,$a<16"#"与列表"/bin/test"$a"

对于测试,[[ ]]结构可能比[ ]更合适.同样地,算术比较可能用(( ))结构更有用.

a=8

# 下面所有的比较是等价的.
test "$a" -lt 16 && echo "yes, $a < 16"         # "与列表"
/bin/test "$a" -lt 16 && echo "yes, $a < 16"
[ "$a" -lt 16 ] && echo "yes, $a < 16"
[[ $a -lt 16 ]] && echo "yes, $a < 16"          # 在[[ ]]和(( ))中不必用引号引起变量
(( a < 16 )) && echo "yes, $a < 16"             #

city="New York"
# 同样,下面的所有比较都是等价的.
test "$city" \< Paris && echo "Yes, Paris is greater than $city"  # 产生 ASCII 顺序.
/bin/test "$city" \< Paris && echo "Yes, Paris is greater than $city"
[ "$city" \< Paris ] && echo "Yes, Paris is greater than $city"
[[ $city < Paris ]] && echo "Yes, Paris is greater than $city"    # 不需要用引号引起$city.

# 多谢, S.C.

© 内存溢出 OutOfMemory.CN