ITPub博客

首页 > Linux操作系统 > Linux操作系统 > linuxSHELL学习之数字比较、字符串比较

linuxSHELL学习之数字比较、字符串比较

原创 Linux操作系统 作者:haha牛 时间:2012-07-02 12:38:59 0 删除 编辑

1、test

test提供一种检测if-then语句中不同条件的方法,如果test命令中列出的条件评估值为true,test
命令以0
推出状态码退出。
if test condition
then
   commands
fi
test命令提供3类条件的评估:数值比较、字符比较、文件比较
数值比较:
n1 -eq n2检查n1是否等于n2         n1 -le n2检查n1是否小于等于n2
n1 -ge n2检查n1是否大于等于n2     n1 -lt n2检查n1是否小于n2
n1 -gt n2检查n1是否大于n2         n1 -ne n2检查n1是否不等于n2
[root@t1 ~]# cat t1.sh
#!/bin/bash
#using numeric test comparisons
var1=10
var2=11
if [ $var1 -lt 5 ]   #注意这里的test与“[”和“]”之间必须要有空格,否则会报错的。
then
  echo "the test value $var1 is greater than 5"
fi

if [ $var1 -eq $var2 ]  #注意这里的test与“[”和“]”之间必须要有空格
then
  echo "the values are equal"
else
  echo "the values are different"
fi

[root@t1 ~]# ./t1.sh
the values are different
字符串比较:
str1 = str2检查str1与str2是否相同       str1 > str2检查str1是否大于str2
str1 != str2检查str1与str2是否不同      -n str1 检查str1的长度是否大于0
str1 < str2检查str1是否小于str2         -z str1 检查str1的长度是否为0
[root@t1 ~]# cat t2.sh  --判断相等否
#!/bin/bash
#testing string eguality
testuser=root
if [ $USER = $testuser ]
then
  echo "welcome $testuser"
fi
[root@t1 ~]# ./t2.sh
welcome root
[root@t1 ~]# cat t3.sh   ---不等判断
#!/bin/bash
#tesing string equality
testuser=oracle
if [ $testuser != root ]
then
  echo "this is not $testuser"
else
  echo "welcome $testuser"
fi
[root@t1 ~]# ./t3.sh
this is not oracle
字符串顺序:
*大于和小于符号一定要转义,否则shell会将他们当做重定向符号,将字符串值看作是文件名。
*大于和小于顺序与在sort中不同
*test使用标准的ASCII排序,使用每个字母的ASCII数值来决定排序顺序,sort命令使用为当前系统语言设置定义的排序顺序。对于英语来说,当前设置指定小写字母排在大写字母之前。
[root@t1 ~]# cat t4.sh
#!/bin/bash
#testing string sort order
var1=Testing
var2=testing
if [ $var1 \> $var2 ]     ---使用标准的ASSCI进行的比较
then
 echo "$var1 is greater than $var2"
else
 echo "$var1 is less than $var2"
fi

[root@t1 ~]# ./t4.sh
Testing is less than testing
**if [ -n var1 ]判断var1是否为非0值,if [ -z var1 ]判断var1是否为0
[root@t1 ~]# cat t5.sh
#!/bin/bash
#testing string length
var1=testing
var2=''
if [ -n $var1 ]
then
  echo "the string '$var1' is not emppty"
else
  echo "the  string '$var1' is empty"
fi

if [ -z $var2 ]
then
  echo "the string '$var2' is empty"
else
  echo "the string '$var2' is not empty"
fi
if [ -z $var3 ]
then
  echo "the string '$var3' is empty"
else
  echo "the string '$var3' is not empty"
fi

[root@t1 ~]# ./t5.sh
the string 'testing' is not emppty
the string '' is empty
the string '' is empty

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23655288/viewspace-734316/,如需转载,请注明出处,否则将追究法律责任。

上一篇: vim学习简要
请登录后发表评论 登录
全部评论

注册时间:2010-04-04

  • 博文量
    102
  • 访问量
    299476