字符串比较时,">",“<使用在[ ]结构中的时候需要被转义:
if [[ "$a" > "$b" ]]
if [ "$a" > "$b" ] if [[ "$a" < "$b" ]] if [ "$a" < "$b" ] 当-n使用在中括号中进行条件测试的时候, 必须要把字符串用双引号引用起来. if [ -n $string1 ] # $string1 没有被声明和初始化. then echo "String "string1" is not null." else echo "String "string1" is null." fi # 错误的结果. # 显示$string1为非null, 虽然这个变量并没有被初始化. echo # 让我们再试一下. if [ -n "$string1" ] # 这次$string1被引号扩起来了. then echo "String "string1" is not null." else echo "String "string1" is null." fi # 注意一定要将引用的字符放到中括号结构中!
string1=initialized if [ $string1 ] # 再来, 还是只有$string1, 什么都不加. then echo "String "string1" is not null." else echo "String "string1" is null." fi # 再来试一下, 给出了正确的结果. # 再强调一下, 使用引用的("$string1")还是更好一些, 原因我们上边已经说过了. string1="a = b" if [ $string1 ] # 再来, 还是只有$string1, 什么都不加. then echo "String "string1" is not null." else echo "String "string1" is null." fi

------分隔线----------------------------
- 上一篇:shell脚本中一些特殊符号
- 下一篇:各种工具之正则表达式语法比较

百鸣[Baiming.org]欢迎您~