shell 条件测试

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

首先创建一个脚本并进行编写

bash 复制代码
accounts_count=`who | cut -d " " -f 1 | sort -u | wc -l`

·who :列出当前登录的所有用户(包含重复的同用户)

·cut -d" " -f 1:以空格为分隔符,提取每一行的第一列

· sort -u :对用户名去重

·wc -l:统计去重后的用户行数(即统计不同用户的数量)

注:需添加反引号**`** 或**¥()**

bash 复制代码
[ $accounts_count -ge 2 ] && echo "too many" || echo "normal"

判断accounts_count是否大于等于2:

如果是 → 输出too many(用户太多)

**◦**如果不是 → 输出normal(正常)

此时运行脚本,因为只登录了root用户所以显示"normal"

为了验证是否能检测出两个用户,在Xshell中再打开一个窗口并远程连接上用户redhat

此时再次运行脚本:

输出为"too many"证明脚本可以正常检测


2.编写脚本temp2.sh ,程序允许输入一个目录名,判断该目录是否存在,若不存在则创建,并显示目录信息

脚本temp2.sh的信息:

bash 复制代码
read -p "请输入一个目录名:" dir_path
  2 if [ -e "$dir_path" ];then
  3     if [ ! -d "$dir_path" ];then
  4         echo "错误:'$dir_path'已存在,但不是目录"
  5         exit 0
  6     else
  7         echo "目录已存在:$dir_path"
  8     fi
  9 else
 10     mkdir -p "$dir_path" && echo "目录已创建:$dir_path"
 11 fi
 12 
 13  ls -ld "$dir_path"

·外循环if用来判断路径是否存在,不存在的话则执行else创建目录

·内循环if用来检查用户输入的是否为目录

·-e:用来判断路径是否存在

bash 复制代码
if [ -e "$dir_path" ];then
  

·-d:用来检查路径是否为目录

bash 复制代码
if [ ! -d "$dir_path" ];then

运行脚本分别输入存在的目录root和不存在的目录123:


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

bash 复制代码
file_length=$(cat "/var/log/messages" | wc -l)
 

·cat:读取文件内容

·wc -l:统计行数并赋值给file_length

bash 复制代码
((file_length >= 30)) && echo "多" || echo "少"

·file_length >= 30:表示判断file_length的值是否大于等于30,如果条件成立输出多,若条件不成立则输出少

运行结果:

相关推荐
独自归家的兔1 分钟前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
程序员猫哥_4 分钟前
HTML 生成网页工具推荐:从手写代码到 AI 自动生成网页的进化路径
前端·人工智能·html
ONE_SIX_MIX4 分钟前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞055 分钟前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
*小海豚*6 分钟前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器
June`6 分钟前
muduo项目排查错误+测试
linux·c++·github·muduo网络库
我爱加班、、10 分钟前
Websocket能携带token过去后端吗
前端·后端·websocket
AAA阿giao10 分钟前
从零拆解一个 React + TypeScript 的 TodoList:模块化、数据流与工程实践
前端·react.js·ui·typescript·前端框架
杨超越luckly16 分钟前
HTML应用指南:利用GET请求获取中国500强企业名单,揭秘企业增长、分化与转型的新常态
前端·数据库·html·可视化·中国500强
消失的旧时光-194322 分钟前
Linux 编辑器入门:nano 与 vim 的区别与选择指南
linux·运维·服务器