Shell编程之条件语句与循环语句和函数

网友投稿 264 2022-11-02

Shell编程之条件语句与循环语句和函数

条件测试

文件测试与整数测试

字符串测试与逻辑测试

if语句

if单分支、双分支、多分支语句。

case分支语句

1.测试

1.1文件测试

test命令:测试表达式是否成立,成立返回0,否则返回其他数值。

常用的测试操作符

-d:测试是否为目录(Directory)

-e:'测试目录或文件是否存在(Exist)

-f: 测试是否为文件(File)

-r:测试当前用户是否有权限读取(Read)

-w:测试当前用户是否有权限写入(Write)

-x:测试当前用户是否有权限执行(eXcute)

-c:测试是否为字符设备文件

-b:测试是否为设备文件

-s: 测试存在且文件大小为空

-L:测试是否为链接文件

1.2整数值比较

常用的测试操作符

格式:【整数1 操作符 整数2 】

在shell脚本中,使用-eq、-ne、-gt、-ge、-lt、-le进行整数的比较。英文意思分别为:

-eq :equal(相等)

-ne :not equal(不等)

-gt :greater than(大于)

-ge :greater than or equal(大于或等于)

-lt :less than(小于)

-le :less than or equal(小于或等于)

注意:在shell中这些符号只能用于整数的比较,不能用于字符串。

1.3字符串比较

字符串比较通常用来检查用户输入、系统环境等是否满足条件,在提供交互式操作的Shell脚本中,也可用来判断用户输入的位置参数是否符合要求。字符串比较的常用操作选项如下。

格式1[字符串1=字符串2] [字符串1 !=字符串2]

格式2 [-z 字符串]

常用的测试操作符

=:字符串内容相同

!=: 字符串内容不同,!表示相反的意思

-z :字符串内容为空

测试读入的字符串是否为yes

1.4逻辑测试

常用的测试操作符

-a或&&:逻辑与, “而且”的意思

-o或||:逻辑或,  “或者”的意思

!:逻辑否(取反)

2.if语句

2.1单分支结构

读取不同的变量值,逐个执行同一组命令

单个括号( [] ) :必须要有空格两个字符或数字之间的比较左右必须有空格

条件判断:test一种形式,[]中间只能使用=和!=比较字符串,如果使用<、>需要进行转义\.

然后中间如果比较数字要用-lt 等符号,不能使用\<比较数字,他会当成字符串处理

两个括号([[]]):可用于处理逻辑命令,也可以处理字符串是否相等,且使用<、>不用转义符

2.2双分支结构

【格式】

if条件测试操作

then 命令序列1

else 命令序列2

fi

案例1:判断机器是否存活

案例2:判断用户是否存在

案例3:是否启动apache服务

查询有没有80端口的服务存在,把输出的信息放到黑洞里

案例4:查看当前用户是否是管理员

2.3多分支结构

【格式】

if  条件测试操作1

then  命令序列1

elif  条件测试操作2

then  命令序列2

else  命令序列3

fi

案例1:判断文件类别

案例2:根据输入的考试分数罚抄不同

有点bug

更改后的

case

如果移除变量值 in模式1)命令序列1;;模式2)命令序列2;;......*)默认命令序列esaccase 行尾必须为单词 “in” 每一模式必须以右括号“)”结束。;;双分号表示命令序列的结束。

案例:检查用户输入的字符类型

编写apache启动服务脚本

案例:一年四季

总结:

条件测试的语法:

文件测试、整数值比较、字符串比较、逻辑测试

if条件语句的语法:

单分支、双分支、多分支

case多分支语句的语法

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java多线程开启的三种方式你知道吗
下一篇:ELK简介及其配置和常规用法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~