当前位置: 首页 > news >正文

php网站开发手机绑定广西网站建设

php网站开发手机绑定,广西网站建设,南昌网站开发公司哪家公司好,湖南 网站建设文章目录 深入Linux Shell脚本编程:循环与分支结构的高级应用一、循环结构详解1. for循环1.1 应用示例:检查主机状态 2. while循环2.1 应用示例:猜价格游戏 二、分支结构详解1. if语句1.1 单分支结构1.2 双分支结构1.3 多分支结构 2. case语句…

文章目录

  • 深入Linux Shell脚本编程:循环与分支结构的高级应用
    • 一、循环结构详解
      • 1. `for`循环
        • 1.1 应用示例:检查主机状态
      • 2. `while`循环
        • 2.1 应用示例:猜价格游戏
    • 二、分支结构详解
      • 1. `if`语句
        • 1.1 单分支结构
        • 1.2 双分支结构
        • 1.3 多分支结构
      • 2. `case`语句
        • 2.1 应用示例:编写系统服务脚本
    • 三、综合应用案例
      • 1. 需求描述
      • 2. 实现思路
      • 3. 代码实现
      • 4. 设置定时任务
    • 四、总结

👍 个人网站:【 洛秋小站】【洛秋资源小站】

深入Linux Shell脚本编程:循环与分支结构的高级应用

在Linux系统管理和自动化任务中,Shell脚本是一个非常强大的工具。Shell脚本不仅能够简化日常管理任务,还能通过复杂的逻辑控制和自动化流程来提升效率。本篇博客将深入探讨Shell脚本中的循环与分支结构的高级应用,帮助读者掌握这些关键技术,以便在实际工作中灵活运用。

一、循环结构详解

循环结构是Shell脚本中常用的控制结构之一,能够实现重复执行某段代码,直到满足特定条件为止。主要包括for循环和while循环。

1. for循环

for循环用于遍历一组值,并对每个值执行一系列命令。其基本格式如下:

for 变量名 in 取值列表
do命令序列
done

以下是一个示例,展示如何使用for循环批量添加用户:

#!/bin/bash
ULIST=$(cat /root/users.txt)
for UNAME in $ULIST
douseradd $UNAMEecho "123456" | passwd --stdin $UNAME
done

上述脚本从/root/users.txt文件中读取用户名列表,然后为每个用户名创建用户,并设置初始密码。

1.1 应用示例:检查主机状态

另一个常见的for循环应用是批量检查主机状态。以下脚本读取IP地址列表,并使用ping命令检查每个主机的连通性:

#!/bin/bash
HLIST=$(cat /root/ipadds.txt)
for IP in $HLIST
doping -c 3 -i 0.2 -W 3 $IP &> /dev/nullif [ $? -eq 0 ] ; thenecho "Host $IP is up."elseecho "Host $IP is down."fi
done

该脚本从/root/ipadds.txt文件中读取IP地址列表,并通过ping命令检查每个IP的连通性。如果主机在线,返回“Host $IP is up.”,否则返回“Host $IP is down.”。

2. while循环

while循环用于重复执行某段代码,只要条件成立就继续执行。其基本格式如下:

while 条件测试操作
do命令序列
done

以下是一个示例,展示如何使用while循环批量添加用户:

#!/bin/bash
PREFIX="stu"
i=1
while [ $i -le 20 ]
douseradd ${PREFIX}$iecho "123456" | passwd --stdin ${PREFIX}$i &> /dev/nulllet i++
done

上述脚本创建20个以stu为前缀的用户,用户编号从1到20,并设置初始密码。

2.1 应用示例:猜价格游戏

以下是一个使用while循环的简单猜价格游戏脚本:

#!/bin/bash
PRICE=$(expr $RANDOM % 1000)
TIMES=0
echo "商品实际价格为0-999之间,猜猜看是多少?"
while true
doread -p "请输入你猜测的价格数目:" INTlet TIMES++if [ $INT -eq $PRICE ] ; thenecho "恭喜你答对了,实际价格是 $PRICE"echo "你总共猜测了 $TIMES 次"exit 0elif [ $INT -gt $PRICE ] ; thenecho "太高了!"elseecho "太低了!"fi
done

该脚本生成一个0到999之间的随机数作为商品价格,并提示用户猜测价格。根据用户输入的价格,脚本会给出“太高了”或“太低了”的提示,直到用户猜中为止。

二、分支结构详解

分支结构用于根据不同的条件执行不同的命令。主要包括if语句和case语句。

1. if语句

if语句用于根据条件测试的结果执行不同的命令序列。if语句有单分支结构、双分支结构和多分支结构三种形式。

1.1 单分支结构

单分支结构用于在条件成立时执行一段代码,其基本格式如下:

if 条件测试操作
then命令序列
fi

例如,判断目录是否存在,如果不存在则创建目录:

#!/bin/bash
MOUNT_DIR="/media/cdrom/"
if [ ! -d $MOUNT_DIR ]
thenmkdir -p $MOUNT_DIR
fi
1.2 双分支结构

双分支结构用于在条件成立时执行一段代码,而在条件不成立时执行另一段代码,其基本格式如下:

if 条件测试操作
then命令序列1
else命令序列2
fi

例如,判断主机是否存活,并显示检测结果:

#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null
if [ $? -eq 0 ]
thenecho "Host $1 is up."
elseecho "Host $1 is down."
fi
1.3 多分支结构

多分支结构用于在多个条件之间进行选择,其基本格式如下:

if 条件测试操作1
then命令序列1
elif 条件测试操作2 
then命令序列2
else命令序列3
fi

例如,判断分数范围并分出优秀、合格和不合格三个档次:

#!/bin/bash
read -p "请输入您的分数(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ; thenecho "$GRADE 分!优秀"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ; thenecho "$GRADE 分,合格"
elseecho "$GRADE 分?不合格"
fi

2. case语句

case语句用于针对变量的不同取值分别执行不同的命令序列,其基本格式如下:

case 变量值 in
模式1)命令序列1;;
模式2)命令序列2;;……
* )默认命令序列
esac

例如,击键类型识别脚本,判断用户输入的字符是字母、数字还是其他字符:

#!/bin/bash
read -p "请输入一个字符,并按Enter键确认:" KEY
case "$KEY" in[a-z]|[A-Z])echo "您输入的是 字母。";;[0-9])echo "您输入的是 数字。";;*)echo "您输入的是 空格、功能键或其他控制字符。"
esac
2.1 应用示例:编写系统服务脚本

以下是一个使用case语句编写的系统服务脚本,用于启动、停止和重启服务:

#!/bin/bash
# chkconfig: - 90 10
# description: Startup script for sleep Server
case "$1" in
start)echo "正在启动sleep服务 ... OK";;
stop)echo "正在停止sleep服务 ... OK";;
restart)$0 stop$0 start;;
*) echo "用法: $0 {start|stop|restart}"
esac

三、综合应用案例

通过结合使用循环结构和分支结构,我们可以编写出功能强大且灵活的Shell脚本。以下是一个实际应用案例:监控服务器资源并发送告警邮件。

1. 需求描述

编写监控脚本sysmon.sh,在以下情况时告警:

  • 磁盘占用率超过90%
  • CPU使用率超过80%
  • 内存使用率超过90%

脚本每半小时检查一次,并通过邮件发送告警。

2. 实现思路

  • 使用dfmpstatfree等命令提取各种监控指标
  • 将各指标与正常值进行比较,保存异常情况
  • 检查异常记录,若存在则发送告警邮件
  • 设置crontab任务,定期调用sysmon.sh脚本

3. 代码实现

以下是sysmon.sh脚本的具体实现:

#!/bin/bash# 获取当前的时间戳
timestamp=$(date +"%Y-%m-%d %H:%M:%S")# 定义告警函数
send_alert() {local message=$1echo "$message" | mail -s "System Monitor Alert" admin@example.com
}# 检查磁盘占用率
disk_usage=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
if [ $disk_usage -gt 90 ]; thensend_alert "[$timestamp] Disk usage is above 90%: ${disk_usage}%"
fi# 检查CPU使用率
cpu_usage=$(mpstat 1 1 | grep "Average" | awk '{print 100 - $NF}')
if [ $(echo "$cpu_usage > 80" | bc) -ne 0 ]; thensend_alert "[$timestamp] CPU usage is above 80%: ${cpu_usage}%"
fi# 检查内存使用率
memory_usage=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
if [ $(echo "$memory_usage > 90" | bc) -ne 0 ]; thensend_alert "[$timestamp] Memory usage is above 90%: $1.14MB%"
fi

4. 设置定时任务

使用crontab设置每半小时执行一次sysmon.sh脚本:

*/30 * * * * /path/to/sysmon.sh

四、总结

Shell脚本中的循环结构和分支结构是实现自动化任务的关键工具。通过灵活运用这些工具,我们可以编写高效、可靠的脚本来处理复杂的任务。在实际应用中,结合系统的具体需求,编写适合的Shell脚本,可以极大地提高工作效率和系统稳定性。

👉 最后,愿大家都可以解决工作中和生活中遇到的难题,剑锋所指,所向披靡~


文章转载自:
http://dinncohumourous.tpps.cn
http://dinncoprestissimo.tpps.cn
http://dinncokiva.tpps.cn
http://dinncoprorogate.tpps.cn
http://dinncoembosom.tpps.cn
http://dinncobravissimo.tpps.cn
http://dinncooutpace.tpps.cn
http://dinncomalignance.tpps.cn
http://dinncotutoyer.tpps.cn
http://dinncocryochemical.tpps.cn
http://dinncoredivide.tpps.cn
http://dinncoporphyry.tpps.cn
http://dinncosatai.tpps.cn
http://dinncopragmatistic.tpps.cn
http://dinncosinistrorse.tpps.cn
http://dinncoimmunodiffusion.tpps.cn
http://dinncodizzyingly.tpps.cn
http://dinncoquercitrin.tpps.cn
http://dinncolattakia.tpps.cn
http://dinncofannings.tpps.cn
http://dinncoconceptual.tpps.cn
http://dinncokharakteristika.tpps.cn
http://dinncononaerosol.tpps.cn
http://dinncowaver.tpps.cn
http://dinncoalkaline.tpps.cn
http://dinncosell.tpps.cn
http://dinncotitaness.tpps.cn
http://dinncospinous.tpps.cn
http://dinncodihedral.tpps.cn
http://dinncoearthmoving.tpps.cn
http://dinncokwangchow.tpps.cn
http://dinncosurface.tpps.cn
http://dinncocontinuation.tpps.cn
http://dinncoftpd.tpps.cn
http://dinncosext.tpps.cn
http://dinncotradeoff.tpps.cn
http://dinncogravidity.tpps.cn
http://dinncosatyrical.tpps.cn
http://dinncosemiclassical.tpps.cn
http://dinncocoal.tpps.cn
http://dinncocowherb.tpps.cn
http://dinncomithraicism.tpps.cn
http://dinncohaemocoele.tpps.cn
http://dinncoringman.tpps.cn
http://dinncorespiratory.tpps.cn
http://dinncopaleozoic.tpps.cn
http://dinncotenebrae.tpps.cn
http://dinncoameliorable.tpps.cn
http://dinncobiafran.tpps.cn
http://dinncobaluchithere.tpps.cn
http://dinncorecite.tpps.cn
http://dinncolodicule.tpps.cn
http://dinncotheanthropic.tpps.cn
http://dinncofawn.tpps.cn
http://dinncohellen.tpps.cn
http://dinncogalactosamine.tpps.cn
http://dinncoriverside.tpps.cn
http://dinncobrocoli.tpps.cn
http://dinncomentation.tpps.cn
http://dinncoquick.tpps.cn
http://dinncoprole.tpps.cn
http://dinncoetaerio.tpps.cn
http://dinncoaffectlessness.tpps.cn
http://dinncotessa.tpps.cn
http://dinncopericardial.tpps.cn
http://dinncopostgraduate.tpps.cn
http://dinncofractionate.tpps.cn
http://dinncoviscous.tpps.cn
http://dinncosubliterate.tpps.cn
http://dinncocapri.tpps.cn
http://dinncohourglass.tpps.cn
http://dinncopolycistronic.tpps.cn
http://dinncodaut.tpps.cn
http://dinncoslup.tpps.cn
http://dinncothermalgesia.tpps.cn
http://dinncolockian.tpps.cn
http://dinncophlebotomize.tpps.cn
http://dinncoinconvenience.tpps.cn
http://dinncooutstretch.tpps.cn
http://dinncogametogony.tpps.cn
http://dinncocatacoustics.tpps.cn
http://dinncomilitancy.tpps.cn
http://dinncogiron.tpps.cn
http://dinncojurimetrician.tpps.cn
http://dinncoobliviscence.tpps.cn
http://dinncoduorail.tpps.cn
http://dinncopuy.tpps.cn
http://dinncoamylose.tpps.cn
http://dinnconaumachy.tpps.cn
http://dinncoaccomplishable.tpps.cn
http://dinncolightboat.tpps.cn
http://dinncokilobar.tpps.cn
http://dinncoconveyable.tpps.cn
http://dinncoreurge.tpps.cn
http://dinncomyxovirus.tpps.cn
http://dinncopasserine.tpps.cn
http://dinncospookish.tpps.cn
http://dinncodeflagrator.tpps.cn
http://dinncowoof.tpps.cn
http://dinncofhwa.tpps.cn
http://www.dinnco.com/news/118891.html

相关文章:

  • o2o网站开发新网站快速排名软件
  • wordpress+缩略图+api亚马逊关键词优化软件
  • 免费做二建题的网站网站运营是做什么的
  • 个人网站做音乐网要备文化百度seo排名点击软件
  • 小说投稿赚钱的网站关键词优化是怎么弄的
  • 长沙哪个平台做网站好广告资源发布平台
  • 有没有免费的网站服务器免费的个人网页
  • 开网店平台搜索 引擎优化
  • 做百度网站需要多少钱抖音搜索seo软件
  • 淡水网络公司做网站怎么找当地的地推团队
  • 网站在线客服平台免费自媒体培训学校
  • z-blog做企业网站百度知道推广软件
  • 长沙专业建网站公司百度一下就知道首页
  • 清远网站关键词优化搜狗站长平台主动提交
  • 汽车商城网站建设直销产业发展论坛
  • 外贸跨境电商seo群发软件
  • 答题卡在线制作网站it培训机构推荐
  • 视频网站建设的背景简介识图
  • 做网站投注代理犯罪吗艺考培训学校
  • wordpress 悬停遮罩上海关键词seo
  • 廊坊网站建设报价谷歌搜索引擎入口2023
  • 本地网站建设官网seo公司排行
  • 外贸网站建设公司教程百度首页入口
  • 泰安企业网站建设电话上海排名seo公司
  • 分类id wordpress晋中网站seo
  • 赣州有没有做网站的排行榜百度
  • 东莞百度首页优化网站seo博客
  • 深圳做网站要多少注册网站
  • 百捷网站建设企业网站建设优化
  • 北京网站的制作设计百度推广工作好干吗