一.Shell变量的作用、类型
1.自定义变量
如NEW=“WORD$Version”,将引用上面的变量,结果是WORD3.0
当需要用$符号时。如CASH=‘US$IS’
如EX=`pgrep –U root | wc –l`,把命令结果赋给EX
如read –p “请输入循环次数:” CISHU
2.整数变量的运算(赋值时必须用反撇号`)
例:echo $EX $CISHU
AK=`expr $EX + $CISHU` (假定read 时输入15)
echo $AK
echo $AK
echo $AK
echo $AK
echo $AK
3.环境变量
4.位置变量
5.预定义变量
序设计-判断语
二. Shell程序设计-判断语句
1.test命令
返回0表示条件成立
返回1表示条件不成立
2.整数值比较
用户数是否 > 1
空闲内存是否 < 1024MB
3.字符串比较
[ 字符串1 != 字符串2 ]
4.单分支if语句
5.双分支if语句
判断ping命令的检测结果,分别给出不同提示
6.多分支if语句
判断分数所在区间,给出不同的分档结果
三.实验案例:使用Shell脚本监控主机
1.需求描述
(mpstat要先安装,详见下页)
mount /dev/cdrom /media/cdrom
cd /media/cdrom/Packages
ls syss*
yum -y install sysstat…(tab键补全)
请运行mpstat,理解各段意义
grep “/$”找到文本中以/结束的行
tali -1 输入文件尾部第一行内容
2.脚本全部内容如下:
#!/bin/bash
#邮件报警监控脚本
#-----------------------采集各个监控项目的数值--------------------------#
gl=$(df -hT |grep "/$" |awk '{print $6/1}')
ul=$(mpstat |tail -1 |awk '{print $12}' |awk -F. '{print 100 - $1}')
ml=$(free -m | awk /Mem/'{print $3 / ($3 + $4) * 100}' | awk -F. '{print $1}')
if [ $gl -gt 90 ]; then
echo "根分区使用率:${gl}% 超出告警上限值: 90%" >> /tmp/alert.txt
fi
if [ $ul -gt 80 ]; then
echo "CPU用率:${ul}% 超出告警上限值: 80%" >> /tmp/alert.txt
fi
if [ $ml -gt 90 ]; then
echo "内存使用率:${ml}% 超出告警上限值: 90%" >> /tmp/alert.txt
fi
*[ -e /tmp/alert.txt ] && cat /tmp/alert.txt |mail?abc@163.com
*[ -e /tmp/alert.txt ] && rm -rf /tmp/alert.txt &> /dev/null
3.在命令行提取各种监控指标
sh sysmon.sh (记得将根分区使用率降到0.5%),
ls /temp
四.心得体会:Linux Shell变量与判断语句的学习
在深入学习了Linux Shell中的变量和判断语句之后,我感受到了Shell脚本的强大和灵活性。通过这段时间的学习和实践,我不仅对Shell脚本的基本语法有了更深刻的理解,也对其在实际工作中的应用有了更清晰的认识。
1.变量的学习心得
变量在Shell脚本中扮演着至关重要的角色,它们使得脚本能够处理动态数据,增强了脚本的灵活性和可重用性。在学习变量的过程中,我了解到变量命名的规则、赋值的方式以及引用的方法。特别是对于特殊变量的理解,如$0
、$1
等位置参数和$?
表示上一个命令的退出状态,这些变量在编写复杂的脚本时非常有用。
同时,我也注意到在使用变量时需要注意的一些细节,比如变量名和等号之间不能有空格,引用变量时需要使用$
前缀等。这些细节虽然看似微不足道,但在实际编写脚本时却非常重要,稍有疏忽就可能导致脚本运行出错。
2.判断语句的学习心得
判断语句是Shell脚本中的另一个重要概念,它允许我们根据条件执行不同的代码块。在学习判断语句的过程中,我掌握了if-then-fi
、if-then-else-fi
以及if-then-elif-else-fi
等基本结构,并了解了如何使用各种比较运算符来构建条件表达式。
判断语句在实际工作中的应用非常广泛,比如可以用来检查文件是否存在、检查用户输入是否有效等。通过学习判断语句,我感受到了Shell脚本在处理条件和逻辑判断方面的强大能力。
3.实际应用中的体会
在学习了变量和判断语句之后,我开始尝试将它们应用到实际的工作场景中。我编写了一些简单的Shell脚本来自动化一些重复性的任务,比如批量重命名文件、检查服务器状态等。通过实践,我深刻体会到了Shell脚本在提高工作效率方面的巨大作用。
同时,我也意识到编写高质量的Shell脚本需要不断学习和实践。在实际应用中,我遇到了许多挑战和问题,比如如何处理复杂的逻辑判断、如何优化脚本的性能等。这些问题促使我不断学习和探索新的知识和技能,以提高自己的编程能力。
4.总结与展望
通过学习Linux Shell中的变量和判断语句,我深刻感受到了Shell脚本的魅力和实用性。这些基础知识是编写高质量Shell脚本的基石,它们将帮助我在未来的工作中更加高效地处理各种任务。同时,我也意识到学习是一个永无止境的过程,我将继续深入学习和探索Shell脚本的高级特性和应用场景,不断提高自己的编程能力和工作效率。