shell编程之条件语句

本文详细介绍了条件测试中的操作符、字符串比较、if语句的单分支、双分支和多分支结构,以及case语句的应用,包括逻辑测试、脚本语法验证和嵌套使用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、条件测试:

1、test常用的操作符:

2、test比较字符串:

3、检查自己的脚本语法逻辑的命令:

4、逻辑测试:

二、if语句的结构:

1、单分支结构:

2、双分支结构:

1、双分支结构小实验:

3、多分支结构:

1、多分支结构小实验:

4、if嵌套:

1、镶嵌小实验:

三、case语句

1、case小实验:


一、条件测试:

格式1:test 条件测试的表达式

格式2:[ 条件测试表达式 ]  两边有空格

[[  ]]:语法和但中括号一致,功能强大,避免歧义,支持正则表达式

1、test常用的操作符:

-e:测试目录或文件是否存在

-d:测试是否为目录

-f:测试是否为文件

-r:测试当前用户是否具有读权限

-w:测试是否有写权限

-x:测试是否有执行权限

2、test比较字符串

比较符号:(只能整数之间比较)

-eq:等于

-ne:不等于

-gt:大于

-lt:小于

-le:小于等于

-ge:大于等于

-z:检测字符串是否为空

以上只能用于比较整数,不能用于字符串

1 -eq 2

变种写法:

== 等于(可以比较字符串,比较字符串是否一致)

而-eq则不能比较字符串

!= 不等于(可以比较字符串)

> 大于

< 小于

<= 小于等于

>= 大于等于

如: 4 -gt 5   和     4 > 5

3、检查自己的脚本语法逻辑的命令:

bash -x 脚本名

4、逻辑测试:

条件测试的条件都要为真

        -a 、&& 表示

 又一边满足即可

        -o 、|| 表示

 逻辑否

格式:

[ 表达式1 ] 操作符 [ 表达式2 ]

双中括号只能用 && || 表示逻辑且或者逻辑或

单中括号只能用-a -o

二、if语句的结构:
1、单分支结构:

命令格式:

if [[  ]]

then

命令序列(只有条件满足才会执行)

fi

举例:

2、双分支结构:

格式:

if [ ]

then

  echo “满足if条件执行的语句“

else

  echo “不满足if条件执行的语句”

fi

举例:

1、双分支结构小实验:

要求有一个IP地址,这个需要用户你手动输入,然后判断,ping通要保留/opt/hosts.txt

ping 不通,打印结果,IP地址不可用

查看奇偶数:

3、多分支结构:

格式语法:

if [条件1]

then

执行条件1的命令序列

elif [条件2]

then

执行条件2的命令序列

else

上述都不满足,执行else的命令序列

fi

1、多分支结构小实验:

4、if嵌套:

格式:

if []

 if []

1、镶嵌小实验:

从0-100中

输入一个数,判断是整数,而且范围必须在0-100之间才能继续执行:

输入的数字是奇数还是偶数

整数

输入的数字大于10

输入的数字比10小

输入的数字和10相等

提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,

如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,

男生进男生组,女生进女生组,如果输入错误请提示错误(整数判断,小数判断。9.72 3.21 )

三、case语句

        和if else相同的思路模式,只不过换了种写法:

1、case小实验:

将奇数+1 偶数+2

用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt 目录

用case语句控制 firewalld start|stop|restart|status 来管理firewalld服务,

要求如果命令选项不对,则提示输入不正确: {start|stop|status|restart}”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值