第六节 红帽认证培训 Vim编辑器与Shell命令脚本(4.3-4.4)
文章目录
4.3 流程控制语句
1.if条件测试语句
代码如下(示例):
[root@linuxprobe ~]# vim chkscore.sh
#!/bin/bash
read -p "Enter your score(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ; then
echo "$GRADE is Excellent"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ; then
echo "$GRADE is Pass"
else
echo "$GRADE is Fail"
fi
[root@linuxprobe ~]# bash chkscore.sh
Enter your score(0-100):88
88 is Excellent
[root@linuxprobe ~]# bash chkscore.sh
Enter your score(0-100):80
80 is Pass
2.for条件循环语句
代码如下(示例):
[root@linuxprobe ~]# vim CheckHosts.sh
#!/bin/bash
HLIST=$(cat ~/ipaddrs.txt)
for IP in $HLIST
do
ping -c 3 -i 0.2 -W 3 $IP &> /dev/null
if [ $? -eq 0 ]
then
echo "Host $IP is On-line."
else
echo "Host $IP is Off-line."
fi
done
[root@linuxprobe ~]# ./CheckHosts.sh
Host 192.168.10.10 is On-line.
Host 192.168.10.11 is Off-line.
Host 192.168.10.12 is Off-line.
3.while条件循环语句
[root@linuxprobe ~]# vim Guess.sh
#!/bin/bash
PRICE=$(expr $RANDOM % 1000)
TIMES=0
echo "商品实际价格为0-999之间,猜猜看是多少?"
while true
do
read -p "请输入您猜测的价格数目:" INT
let TIMES++
if [ $INT -eq $PRICE ] ; then
echo "恭喜您答对了,实际价格是 $PRICE"
echo "您总共猜测了 $TIMES 次"
exit
elif [ $INT -gt $PRICE ] ; then
echo "太高了!"
else
echo "太低了!"
fi
done
4.case条件测试语句
[root@linuxprobe ~]# vim Checkkeys.sh
#!/bin/bash
read -p "请输入一个字符,并按Enter键确认:" KEY
case "$KEY" in
[a-z]|[A-Z])
echo "您输入的是 字母。"
;;
[0-9])
echo "您输入的是 数字。"
;;
*)
echo "您输入的是 空格、功能键或其他控制字符。"
esac
[root@linuxprobe ~]# bash Checkkeys.sh
请输入一个字符,并按Enter键确认:6
您输入的是 数字。
[root@linuxprobe ~]# bash Checkkeys.sh
请输入一个字符,并按Enter键确认:p
您输入的是 字母。
[root@linuxprobe ~]# bash Checkkeys.sh
请输入一个字符,并按Enter键确认:^[[15~
您输入的是 空格、功能键或其他控制字符。
4.4 计划任务服务程序
- 一次性计划任务:今晚23点30分重启网站服务。
at命令:
1.at 时间
[root@linuxprobe ~]# at 23:30
warning: commands will be executed using /bin/sh
at> systemctl restart httpd
at> 此处请同时按下<Ctrl>+<d>键来结束编写计划任务
job 1 at Wed Oct 14 23:30:00 2020
#使用“at now +2 MINUTE”的方式操作,这样代表2分钟(MINUTE)后执行这个任务,也可以替代成小时(HOUR)、日(DAY)、月(MONTH)等词汇:
[root@linuxprobe ~]# at now +2 MINUTE
warning: commands will be executed using /bin/sh
at> systemctl restart httpd
at> 此处请同时按下<Ctrl>+<d>键来结束编写计划任务
job 3 at Wed Oct 14 22:50:00 2020
2.at -l :查看已设置好但还未执行的一次性计划任务
[root@linuxprobe ~]# at -l
1 Wed Oct 14 23:30:00 2020 a root
3. 要想将其删除,可以用“atrm 任务序号
[root@linuxprobe ~]# atrm 2
[root@linuxprobe ~]# at -l
1 Wed Oct 14 23:30:00 2020 a root
- 长期性计划任务:每周一的凌晨3点25分都把/home/wwwroot目录打包备份为backup.tar.gz。
crond命令:
#创建、编辑计划任务的命令为“crontab -e”;
#查看当前计划任务的命令为“crontab -l”;
#删除某条计划任务的命令为“crontab -r”。
#假设在每周一、三、五的凌晨3点25分,都需要使用tar命令把某个网站的数据目录进行打包处理,使其作为一个备份文件。我们可以使用crontab -e命令来创建计划任务,为自己创建计划任务无需使用-u参数,具体的实现效果的参数如crontab -l命令结果所示:
[root@linuxprobe ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@linuxprobe ~]# crontab -l
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot
#删除crond计划任务则非常简单,可以使用crontab -e命令进入到编辑界面中,删除里面的文本信息即可,也可以使用crontab -r命令直接进行删除:
[root@linuxprobe ~]# crontab -r
[root@linuxprobe ~]# crontab -l
no crontab for root
总结
以上就是今天讲的内容,本文仅仅简单介绍vim和Shell的编辑。