您的位置:首页 > 运维架构 > Linux

linux:shell脚本(逻辑判断和字符串比较)

2018-09-24 00:03 501 查看

常用比较和判断:
整数比较:

-lt 小于
-le 小于等于
-gt 大于
-ge 大于等于
-eq 等于
-ne 不等于
例:if [ ${var} -le 10 ]; then
echo "${var}小于等于10"
fi
注意:if  [  ]里两边要有空格

文件测试:

-f 存在且是普通文件
-d 存在且是目录
-s 存在且字节数大于0
-r 存在且可读
-w 存在且可写
-x 存在且可执行
例:if [ -f ${file} ];then
echo "${file}存在且是文件"
fi

逻辑判断使用 &&(且)、||(或)、!(取反)

例:if [ ! -d ${file} ]; then
echo "${file}不存在或者不是目录"
fi

字符串比较:常用比较运算符:= 或者(==)、!=

-z表示后面的值是否为空,为空则返回true,否则返回false。
-n表示判断后面的值是否为空,不为空则返回true,为空则返回false。

例:if [ -z ${str} ] || [ -z ${var} ]; then
echo "${str}值为空或者${var}的值为空"
fi

str="root"
if [ ${str} == 'root' ]; then
echo "${str}字符串与root相等"
fi

注意:  
  比较运算符的两边都有空格分隔(即==或=两边要有空格,如果没有空格,不能做判断,直接运行if后的语句),同时要注意比较运算符两边的变量是否可能为空,

例:str="root"
if [ ${str}=="root" ];then
echo "erro"
fi
==两边没有空格,不会进行if判断,直接运行echo "erro"

在使用变量比较字符串之前,最好在判断之前加一个判断变量是否为空  或者使用双引号将其括起来,
注意,必须使用双引号,因为变量在双引号中才会被解析。
例:str="root"
if [ -n ${str} ];then
echo "${str}值不为空"
fi
if [ "${str}" == "root" ];then
echo "${str}与root相等"
fi
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐