RHCE的条件测试

什么是条件测试

Shell 条件测试:用于判断某个条件是否成立,返回 **真(0)或假(非0)**。

常用形式:

注意:中括号条件两侧必须要有空格,要不然会报错

  1. 条件 或 test 条件→ 传统测试

  2. \[ 条件 ] → 增强测试(支持模式匹配、逻辑运算)

  3. ((表达式)) → 整数算术/逻辑测试

简而言之:用来检查文件状态、字符串关系或数值关系,并根据结果控制程序流。

一、test的用法

root@server \~# test -f /etc/passwd
root@server \~# echo $?
0
root@server \~# test -f /etc/passwd && echo 真 || echo 假 (将两条命令合在一起)
真
root@server \~# test -f /etc/ssh && echo 真 || echo 假 (ssh不是文件是一个目录)
假
root@server \~# test -f /etc/ssh/sshd_config && echo 真 || echo 假
真
root@server \~# test -d /etc/ssh && echo 真 || echo 假
真
root@server \~# test -e /etc/ssh && echo 真 || echo 假
真
root@server \~# test -r /etc/ssh && echo 真 || echo 假
真
root@server \~# test -w /etc/ssh && echo 真 || echo 假
真
root@server \~# test -x /etc/ssh && echo 真 || echo 假
真
root@server \~# test -L /etc/ssh && echo 真 || echo 假
假
root@server \~# test -s /etc/passwd && echo 真 || echo 假
真

一个文件如果具备x权限表示它可执行,一个目录如果具备x权限表示是否可以进

二、\[\]的用法

root@server \~# -f /etc/cron.d && echo true || echo false
false
root@server \~# -d /etc/cron.d && echo true || echo false
true
root@server \~# -L /etc/cron.d && echo true || echo false
false
root@server \~# -S /etc/cron.d && echo true || echo false
false
root@server \~# mkfifo pip #创建管道文件
root@server \~# -p pip && echo true || echo false
true

逻辑运算

-a与 -o或 !非

\[]的用法,\[]是\[\]强化版本,所以\[\]支持的方法\[]完全支持,并且额外支持:

比较运算符无需转义

支持逻辑运算符 && 、||、!

支持模式匹配(正则表达式)

三、整数测试

案例分析

例1:判断当前系统中已登录账户数,若大于等于2个则输出"Too many" 否则输出" normal"

1.打开虚拟机随便创建一个普通用户并进入,然后进入Xshell

2.首先用w命令查看账户数

3.进行查重,查重命令为

或

4.统计行数

5.写脚本

进入#vim first.ssh

然后执行 sh first.ssh

6、启用脚本后可查看为Too many(如图1),如果我断掉右边的普通用户则为normal(如图2)

图1:

图2:

3.例2:编写脚本temp2.sh ,程序允许输入一个目录名,

判断该目录是否存在,若不存在则创建,并显示目录信息

1.vim temp2.sh

执行

例3:如果/var/log/messages文件行数大于30行,则显示"多",否则显示"少"

相关推荐
桌面运维家5 小时前
旧电脑跑不动课程软件,VDI云桌面怎样接着用?
运维·服务器·虚拟化·pve·vdi·云桌面
zhang133830890756 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
知已难寻6 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
2601_949847758 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_639906948 小时前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
今天重构了吗9 小时前
Linux 上 rm -rf 删错了能找回吗
运维·服务器
KaiwuDB9 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
codezzzsleep9 小时前
学术汇报 PPT 自动化生成实战指南
运维·自动化·powerpoint
古法老登瞎折腾9 小时前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp
Smoothcloud润云10 小时前
GPU远程纳管安全吗?最小权限、网络边界与日志审计实战
服务器·网络·人工智能·安全·gpu算力·gpu