shell中的数字和字符串比较

来源:互联网 发布:卫星通信网络 编辑:程序博客网 时间:2024/05/17 05:51

数值比较

n1 -eq n2:相当于n1 == n2n1-ge n2:相当于n1 >= n2n1 -gt n2:相当于n1 > n2n1 -le n2:相当于n1 <= n2n1 -lt n2:相当于n1 < n2n1 -ne n2:相当于n1 != n2

字符串比较

str1 = str2:比较是否相等str1 != str2:不相等str1 < str2:str1小与str2,按字母在ASCII表中的大小依次比较str1 > str2:str1大于str2,按字母在ASCII表中的大小依次比较-n str1:str1长度是否不为0-z str1:str1长度是否为0

注意:<>在比较时需要转义,不然会被当成重定向符号处理。
例如:

#!/bin/shstr1="abc"str2="abcd"if [ $str1 \> str2 ]; then    echo "str1 > str2"fi

字符串的模式匹配

[[]]提供了字符串的模式匹配,即可以使用正则表达式来比较字符串。
例如:

#!/bin/shstr1="192.168.0.2       " # 注意后面又多个空格str2="192.168.0.2"# 如果str1是str2加上0个或多个空格结尾,我们也任务str1等于str2if [[ $str1 = ^$str2[ ]*$ ]]; then    echo "str1 equal str2"fi
原创粉丝点击