RHCE的条件测试

什么是条件测试

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

常用形式:

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

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

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

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

一、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 ![](https://i-blog.csdnimg.cn/direct/9c6546531d9f49d283b8e48665b4c362.png) 2.首先用w命令查看账户数 ![](https://i-blog.csdnimg.cn/direct/300d05608de24fe3bddcbab78ab12a74.png) 3.进行查重,查重命令为 ![](https://i-blog.csdnimg.cn/direct/b220bc03fb4c463e96c84e9c5534a9cf.png) 或 ![](https://i-blog.csdnimg.cn/direct/1da8e7820da24f869f930de59cf8f124.png) 4.统计行数 ![](https://i-blog.csdnimg.cn/direct/53df172124ff4eb9a1bcd7f77855c3d5.png) 5.写脚本 进入#vim first.ssh ![](https://i-blog.csdnimg.cn/direct/f80e9cfaa4ca474ab0b8e80e4987b093.png) 然后执行 sh first.ssh 6、启用脚本后可查看为Too many(如图1),如果我断掉右边的普通用户则为normal(如图2) 图1: ![](https://i-blog.csdnimg.cn/direct/2d5389044c1643c18c0cb50cfb37fea7.png) 图2: ![](https://i-blog.csdnimg.cn/direct/4331601fdcb64079bd7d4b9af8947b44.png) **3.例2:编写脚本temp2.sh ,程序允许输入一个目录名,** **判断该目录是否存在,若不存在则创建,并显示目录信息** 1.vim temp2.sh ![](https://i-blog.csdnimg.cn/direct/daa1dc52eac2448ea99d03fcdfd50048.png) #### **执行** ![](https://i-blog.csdnimg.cn/direct/56be843c5397429590bcab59b4f281ac.png) **例3:如果/var/log/messages文件行数大于30行,则显示"多",否则显示"少"** ![](https://i-blog.csdnimg.cn/direct/31292380c0274b3ea730d58735bc50c6.png)

相关推荐
wanhengidc4 小时前
免费云手机的安全性如何?
运维·服务器·安全·智能手机·生活
新青年.4 小时前
【Ubuntu】Ubuntu下解决Chrome不能输入中文
linux·chrome·ubuntu
科技块儿5 小时前
在线IP归属地查询工具有哪些?
服务器·网络·tcp/ip
吕了了5 小时前
41 制作自己的wim包+DIY微软官方ISO文件!
运维·windows·microsoft·电脑·系统
谷粒.5 小时前
自动化测试覆盖率从30%到80%的演进历程:策略、挑战与未来展望
运维·网络·深度学习·架构·自动化·transformer·测试覆盖率
绯雨千叶5 小时前
version“openssl_1.0.0”not found 解决办法
运维·服务器
风华同学5 小时前
【环境搭建篇】ARM+Linux环境搭建
linux·运维·arm开发
温柔如酒5 小时前
【linux调试】使用 sysrq 快照内核状态堆栈
linux·运维·服务器
板鸭〈小号〉5 小时前
简单的http服务器实现C++
运维·服务器