学习shell的第二天(判断)

一、shell条件测试

1.1测试格式

测试的方法;

1.1.1格式1

test 条件表达式
exp:
在这里插入图片描述
在这里插入图片描述
类似的参数除了 -d,-f等等还有很多,以下列出:

参数含义
-f存在时返回真
-b存在并且是块文件时返回真(返回0)
d存在并且是一个目录时返回真
-h存在并且是符号链接文件时返回真 (或 -L filename)
-u指定的文件或目录存在并且设置了SUID 位时返回真
-c存在并且是字符文件时返回真
-e指定的文件或目录存在时返回真
-g指定的文件或目录存在并且设置了SGID 位时返回真
-k指定的文件或目录存在并且设置了"粘滞"位时返回真
-p存在并且是命名管道时返回真
-r指定的文件或目录存在并且可读时返回真
-s存在并且文件大小大于0 时返回真
-S存在并且是socket 时返回真
-t fd当fd 是与终端设备相关联的文件描述符时返回真
-w指定的文件或目录存在并且可写时返回真
-x指定的文件或目录存在并且可执行时返回真
-O存在并且被当前进程的有效用户id 的用户拥有时返回真(字母O 大写)
-G存在并且属于当前进程的有效用户id 的用户的用户组时返回真

1.1.2格式2

[ 条件表达式 ] 也即中括号里直接加上要测试的内容
exp:
在这里插入图片描述

1.1.3格式3

[[ 条件表达式 ]] 使用两个中括号
&&调用正则时,请使用双中括号。 一般很少使用

1.2文件测试

文件测试的方法可以使用上面提到的测试方法。这里不再细讲。

1.3数值测试

操作符

操作符含义
-gt大于
-lt小于
-eq等于
-ne不等于
-ge大于等于
-le小于等于

exp:
在这里插入图片描述

1.4字符串测试

在这里插入图片描述

二、流程控制 (if语句)

2.1if单分支结构

语法:
if 条件测试
then 命令序列
fi

exp:
需求 :编写脚本,由用户输入用户名,如果用户不存在,则创建该用户,并设置密码为123456
在这里插入图片描述

2.2if双分支结构

语法:
if 条件测试
then
命令序列
else
命令序列
fi

exp:
需求:编写脚本,由用户输入用户名,如果用户不存在,则创建该用户,并设置密码为123456;否则,提示用户已经存在
在这里插入图片描述

2.3if多分支结构

语法:
多分支结构
if 条件测试1
then 命令序列
elif 条件测试2
then 命令序列
elif 条件测试3
then 命令序列…
else 命令序列
fi

exp:
需求:编写脚本,取出系统时间的小时,对数字进行判断
6–10 this is morning
11-13 this is noon
14-18 this is afternoon
其他 this is night
在这里插入图片描述
在多分支结构中,所有的if都针对同一变量进行判断。双分支也是一种特殊的多分枝。

2.4if嵌套结构

语法:
**嵌套结构
if 条件测试1 then 命令序列
if 条件测试1 then 命令序列
else 命令序列
fi

else 命令序列
fi**
exp:
在这里插入图片描述
在这里插入图片描述

三、模式匹配 (case 语句)

3.1case介绍以及它的简单案例

case语法和if…elif…else语句一样都是多分支条件语句,不过和if多分支条件语句不同的是,case语句只能判断一种条件关系,而if语句可以判断多种条件关系。
case 语法:
*case 变量 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
模式3)
命令序列3
;;
)
无匹配后命令序列
esac

exp:
案例1:简单的模式匹配
邀请用户输入待删除用户名。
询问用户,确定要继续删除吗 yes/no: " y

我们先来看看if语句编写:
在这里插入图片描述
完全可以使用elif语句再添加一次判断,而这次判断可以设置多个选项,这其实就和case语句本质上是一样的如下图:
在这里插入图片描述
那么下面我们使用case语句来编写这个脚本:
在这里插入图片描述

3.2case案例2 设置跳板机

现在一定规模互联网企业,往往都拥有大量服务器,如何安全并高效的管理这些服务器是每个系统运维或安全运维人员必要工作。现在比较常见的方案是搭建堡垒机环境作为线上服务器的入口,所有服务器只能通过堡垒机进行登陆访问。

=======================================================================================================

因此需要通过终端连接到远程开发机进行工作,由于安全等因素,登录开发机时需要先登录跳板机,然后在跳板机上再实际连接开发机,如下图所示:
在这里插入图片描述
登录跳板机成功后,在跳板机分配的终端中使用ssh命令再登录开发机,跳板机和开发机之间采用带密码的ssh验证,因此需要输入ssh私钥的密码。
那么接下来我们就用case语句编写一个脚本来设置一个跳板机。
在这里插入图片描述

3.3case案例3 系统管理工具箱

可以编写一个脚本,设置一些快捷键在里边。
exp:
h 显示命令帮助
f 显示磁盘分区
d 显示磁盘挂载
m 查看内存使用
u 查看系统负载
q 退出程序
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值