shell脚本基础知识(第二篇)

一、在介绍if语句先了解其语法

1)常用的选项如下

 -d:测试是否为目录(Directory)或目录是否存在

-e:测试目录或文件是否存在(Exist)

-f:测试是否为文件(File)过文件是否存在

-r:测试当前用户是否有权限读取(Read)

-w:测试当前用户是否有权限写入(Write)

-x:测试当前用户是否有权限执行(eXcute)

2)数字比较

-eq:等于(Equal)

-ne:不等于(Not Equal)

-gt:大于(Greater Than)

-lt:小于(Lesser Than)

-le:小于或等于(Lesser or Equal)

-ge:大于或等于(Greater or Equal)

3)字符串比较:字符串比较通常用来检查用户输入、系统环境是否满足条件、在提供交互式操作的shell脚本中也可以判断用户输入位置参数是否符合要求,字符串的常用操作如下

=:字符串内容相同

!=:字符串内容不同,! 号表示相反的意思

-z:字符串内容为空

!=失取反的意思,

4)逻辑测试:是判断两个或多个条件之间的依赖关系,当系统取决于多个条件时,根据这些条件或其中的一个条件成立等情况需要有一个过程,常用的逻辑测试如下所示

-a或&&:逻辑与,“而且”的意思

-o或||:逻辑或,“或者”的意思

!  逻辑否

二、实战

1)//编写一个脚本判断挂载点目录zm目录是否存在如果不存在则新建此目录


#!/bin/bash
if
	[ ! -d /media/zm ]
then

	mkdir -p /media/zm 
fi

2)//通过一个脚本检查vsftpd服务是否运行,如果已经运行列出器监听的地址PI号,否则输出提示“警告vsftpd服务不可用!”


#!/bin/bash
/etc/init.d/vsftpd status &>>/dev/null
if
	[ $? -eq 0 ]
then
	echo "vsftpd的监听地址:$(netstat -anpt | awk '{print $3}' )"
	echo "进程PID号$(pgrep -x vsftpd)"
else
	echo "警告vsftpd服务不可用"
fi

3)///编写脚本判断系统中sysstat软件包的安装情况并编写监控脚本存在异常时邮件告警,监控CPU使用率、内存使用率、根分区的占用率


#!/bin/bash
rpm -q sysstat &>> /dev/null
File=/var/log/sysmon.log
Mail=root@contos.benet.com
CPU=$(expr 100 - $(mpstat | tail -1 | awk '{print $11}' | awk -F. '{print $1}'))
MEM=$(expr $(free -m | grep "cache:" | awk '{print $3}') \* 100 / $(free -m | grep "Mem:" | awk '{print $2}'))
DISK=$(df -hT | grep "/$" | awk '{print $6}' | awk -F% 'print $1')
if
	[ $? -eq 0 ]
then
	echo "$(rpm -q sysstat)"
else
	dir=$(cd /media/Packages)
	echo "将要自动安装sysstat软件"
	rpm -ivh /media/Packages/sysstat-*.rpm
fi
if
	[ $CPU -ge 1 ]
then
	echo "当前CPU的使用率为:$CPU" >> $File
fi
if
		[ $MEM -gt 2 ]
	then
		echo "当前内存的使用率为:$MEM" >> $File
fi
if
	[ $DISK -gt 2 ]
then
	echo "当前根分区的使用率为:$DISK" >>$File
fi
if
	[ -f $File ]
then
	cat $File | mail -s "机房运行状态" $Mail
	rm -rf $File
fi

4)//猜价格游戏,范围是0-999。太好玩了

#!/bin/bash
price=$(expr $RANDOM % 100 )
TIMES=0
echo "商品实际价格范围为0-99,猜猜看是多少?"
while true
do
read -p “请输入你猜的价格目录:” INT
let TIMES++
if [ $INT -eq $price ];then
echo "恭喜你答对了,实际价格是 $price"
echo "你总共猜测了 $TIMES 次"
elif [ $INT -gt $price ];then
echo "太高了!"
else
echo "太低了!"
fi
done

。。。。。。。。。。。。。。。

一个小小的技术交流(如何用脚本实现99乘法表?)。可以写在评论上,多多交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值