shell编程条件测试
发布时间:2020-12-15 21:11:25 所属栏目:安全 来源:网络整理
导读:关于条件测试命令可以使用man test命令查看 测试语句语法 test 测试语句 [ 测试语句 ] [[ 测试语句 ]] ((测试语句)) 其中1和2除了语法不一样,功能基本是一样的,而第3种语法他可以使用通配符进行匹配,第四种语法除了用于整数的比较,更多的还是进行一些整
关于条件测试命令可以使用man test命令查看
测试语句语法
其中1和2除了语法不一样,功能基本是一样的,而第3种语法他可以使用通配符进行匹配,第四种语法除了用于整数的比较,更多的还是进行一些整数的运算,不过平时经常用到的还是第2、3种语法结构。 条件测试类型
文件测试格式:
常用文件测试操作符:
[[email?protected] ~]# touch wanger #新建一个普通文件 [[email?protected] ~]# test -f wanger && echo 0 || echo 1 0 #测试文件是否是普通文件,如果是输出0,否则输出1 [[email?protected] ~]# [ -d wanger ] && echo 0 || echo 1 1 #测试文件是否是一个目录,如果是输出0,否则输出1 [[email?protected] ~]# touch wangerxiao 创建一个普通文件wangerxiao [[email?protected] ~]# test wanger -nt wangerxiao && echo 0 || echo 1 1 #比较wanger是否比wangerxiao新,如果为真输出0,否则输出1 [[email?protected] ~]# [ wanger -ot wangerxiao ] && echo 0 || echo 1 0 #比较wanger是否比wangerxiao旧,如果为真输出0,否则输出1 字符串测试:格式:
常用字符串测试操作符:
实例:[[email?protected] ~]# name=wanger #定义一个变量 [[email?protected] ~]# [ -z $name ] && echo 0 || echo 1 1 #判断字符串是否为空,为空则返回0,否则返回1 [[email?protected] ~]# test -n $name && echo 0 || echo 1 0 #判断字符串是否不为空,如果是则返回0,否则返回1 [[email?protected] ~]# [ $name != "wanger" ] && echo 0 || echo 1 1 #判断变量是否不等于”wanger”,如果是返回0,否则返回1 [[email?protected] ~]# test $name = "wanger" && echo 0 || echo 1 0 #判断变量是否等于”wanger”,如果是返回0,否则返回1 数值测试:格式:test num1 数值测试操作符 num2 [ num1 数值测试操作符 num2 ] [[ num 数值测试操作符 num2 ]] ((num1数值测试操作符num2)) 常用数值测试操作符:
实例:[[email?protected] ~]# test 6 -le 5 && echo 0 ||echo 1 0 #判断6是否小于等于5,如果是返回0,否则返回1 [2]+ Done test 64 -gt 63 [[email?protected] ~]# [ 6 -gt 5 ]&& echo 0 || echo 1 0 #判断6是否大于5,如果大于返回0,否则返回1 [[email?protected] ~]# [[ 6 = 5 ]]&& echo 0 || echo 1 1 #判断6是否等于5,如果等于返回0,否则返回1 [[email?protected] ~]# ((5!=6))&&echo 0 ||echo 1 0 #判断5是否等于6,如果不等于返回0,等于则返回1 逻辑运算符:
实例:test=”123” #定义test变量 [[email?protected] ~]# [ ! -z $test -o $test = "123" ] &&echo 0 || echo 1 0 #判断test变量是否不为空或者是否等于123,如果是返回0,在[]格式中只能使用-o和-a,而不能用&&和|| [[email?protected] ~]# test -z $test && test $test = "123" &&echo 0 ||echo 1 1 #判断test变量是否为空并且test变量是否等于123,如果是返回0 [[email?protected] ~]# [[ -z $test || $test = "123" ]] &&echo 0 ||echo 1 0 #判断test变量是否为空或者test变量是否等于123,如果是返回0 欢迎各位关注我的微信公众号“没有故事的陈师傅” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |