Shell中条件判断语法与判断条件

前端之家收集整理的这篇文章主要介绍了Shell中条件判断语法与判断条件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_403_1@

@H_403_1@

一,简介

Shell各种判断结构和运算符的用法是shell编程的基础,了解shell的判断、运算符和一些退出状态

对后面的学习有很重要的影响。shell有一个内部命令test经常用于对判断语句

进行测试一种或几种状态的条件是否成立

@H_403_1@

二. 判断条件

(1)Linux的shell中的测试命令,用于测试某种条件或某几种条件是否真实存在

测试命令是判断语句和循环语句中条件测试的工具,对判断和运算符的比较测试有很大的帮助。

(2)测试条件为真,返回一个0值; 为假,返回一个非0整数值

测试命令有两种方式,一种test expression(表达式);另一种命令格式[ expression ]

其中”[“是启动测试命令,”]”要与之配对,而且”[“和”]”前后的空格必不可少

此方式常作为流程控制语句的判断条件@H_403_1@@H_403_1@2.1 字符串判断@H_403_1@@H_403_1@str1 = str2      当两个串有相同内容、长度时为真@H_403_1@str1 != str2      当串str1和str2不等时为真@H_403_1@-n str1        当串的长度大于0时为真(串非空)@H_403_1@-z str1        当串的长度为0时为真(空串)

这个地方有必要举个小例子,我们编程的时候经常做一些使用喜欢使用空格表示空

但shell中空格会被判断成一个字符,比如:

[ -n ” ” ] 这个值echo $?会返回0,说明字符串不为空。@H_403_1@[ -z ” ” ] 这个值echo $?会返回非空,说明里边不是空。@H_403_1@@H_403_1@2.2 数字的判断@H_403_1@int1 -eq int2    两数相等为真@H_403_1@int1 -ne int2    两数不等为真@H_403_1@int1 -gt int2    int1大于int2为真@H_403_1@int1 -ge int2    int1大于等于int2为真@H_403_1@int1 -lt int2     int1小于int2为真@H_403_1@int1 -le int2    int1小于等于int2为真@H_403_1@2.3 文件的判断@H_403_1@-e file 若文件存在,则为真@H_403_1@-d file 若文件存在且是一个目录,则为真@H_403_1@-b file 若文件存在且是一个块特殊文件,则为真@H_403_1@-c file文件存在且是一个字符特殊文件,则为真@H_403_1@-f file文件存在且是一个规则文件,则为真@H_403_1@-g file文件存在且设置了SGID位的值,则为真@H_403_1@-h file文件存在且为一个符合链接,则为真@H_403_1@-k file文件存在且设置了“sticky”位的值@H_403_1@-p file文件存在且为一已命名管道,则为真@H_403_1@-r file文件存在且可读,则为真@H_403_1@-s file文件存在且其大小大于零,则为真@H_403_1@-u file文件存在且设置了SUID位,则为真@H_403_1@-w file文件存在且可写,则为真@H_403_1@-x file文件存在且可执行,则为真@H_403_1@-o file文件存在且被有效用户ID所拥有,则为真@H_403_1@@H_403_1@2.4 逻辑判断@H_403_1@!expr 若expr为假则复合表达式为真,expr可以是任何有效的测试表达式@H_403_1@expr1 -a expr2 expr1和expr2都为真则整式为真@H_403_1@expr1 -o expr2 expr1和expr2有一个为真则整式为真@H_403_1@@H_403_1@补充: 系统变量@H_403_1@$n该变量与脚本被激活时所带的参数相对应@H_403_1@

.n是正整数,与参数位置相对应($1,$2…)@H_403_1@$? 前一个命令执行后的退出状态@H_403_1@$#提供脚本的参数号@H_403_1@$*所有这些参数都被双引号引住。若一个脚本接收两个参数,$*等于$1$2@H_403_1@$0正在被执行命令的名字。对于shell脚本而言,这是被激活命令的路径@H_403_1@$@所有这些参数都分别被双引号引住。若一个脚本接收到两个参数,$@等价于$1$2@H_403_1@$$当前shell的进程号。对于shell脚本,这是其正在执行时的进程ID@H_403_1@$!前一个后台命令的进程号

3、退出状态

(1)Linux系统,每当命令执行完成后,系统返回一个退出状态。若退出状态值为0,表示命令运行成功;反之若退出状态值不为0,则表示命令运行失败。最后一次执行命令的退出状态值被保存在内置变量”$?”中。

(2)exit命令格式:exit status(status在0~255之间),返回该状态值时伴随脚本的退出,参数被保存在shell变量$?中。

三、总结

(1)shell的各种运算符是编程的重要环节。IF和CASE条件判断结构的应用,使问题有了多分支的选择。

(2)本文仅简单的介绍重要的基础知识,若要熟练使用,还需要大量的练习。

猜你在找的Bash相关文章