本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • Shell
  • 【Linux Shell脚本编程】使用[ ]或者test命令实现条件测试判断

【Linux Shell脚本编程】使用[ ]或者test命令实现条件测试判断

发布:TangLu2018-12-19 23:32分类: Shell 标签: bash 脚本 shell

条件判断通常用在Shell脚本中,比如实现“如果A目录不存在则创建A目录”这样的需求。对于要进行条件判断的数据类型通常有整数、字符串、文件三种。常用的条件判断表达式的书写方式有两种:

# test+表达式
# [ 表达式 ]  #注意方括号两边都是有空格的
[root@iZ25aj1q2ovZ ~]# test $a -eq $b
[root@iZ25aj1q2ovZ ~]# [ $a -eq $b ]


一、对整数类型的数据进行条件判断,用于比较数字
-eq:测试两个整数是否相等,如$a -eq $b,判断a和b两个变量的值是否相等,是的话$?返回值为0
-ne:测试两个整数是否不等,不等为真(即$?返回0)
-gt:测试一个数是否大于另一个数,大于为真,否则为假
-lt:测试一个数是否小于另一个数,小于为真,否则为假
-gt:测试一个数是否大于或等于另一个数

-le:测试一个数是否小于或等于另一个数


二、对文件类型的数据进行条件判断,用于测试文件属性或者文件类型
-e:测试文件是否存在,如-e /etc/fstab
-f:测试是否为普通文件
-d:测试是否为目录文件
-w:测试当前用户是否对文件有写权限
-r:测试当前用户是否对文件有读权限

-x:测试当前用户是否对文件有执行权限


三、对字符串类型的数据进行条件判断,用于测试字符内容是否为正确的值变量或字符串都要用双引号避免比如变量不存在的情况下报出的语法错误

=:测试两边字符串是否相等,不可用于数字大小的比较,如果涉及到正则表达式那应该写为=~

-n:测试变量是否为空
-s :测试变量是否不空

!:对判断结果取反,如!=、! -d、! -f
if [ ! -d $DIR ];then
  echo "$DIR not exists"
else
  echo "$DIR already exists"
fi

四、组合逻辑测试:
-a:逻辑与关系
-o:逻辑或关系
!: 非关系
if [ $# -gt 1 -a $# -le 5 ]
if [ $# -gt 1 ] && [ $# -le 5 ]


温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《【Linux Shell脚本编程】使用[ ]或者test命令实现条件测试判断
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-199.html  [生成短网址]

已有 0/2371 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~