Shell中常用的语句

一、exit、break、continue三者区别

exit 完全中断脚本的执行
break 中断脚本的循环,但是会执行循环外的语句
continue 跳出本次循环,进行下一次循环

进一步了解三者的区别,有如下实验:

[root@localhost mnt]# vim file.sh 

这里写图片描述
执行该脚本:
脚本正常运行情况:
这里写图片描述
这里写图片描述

二、for语句

1.格式
for NUM in 1 2 3
for NUM in {1..3}
for NUM in seq 1 3 或者 for NUM in seq 1 2 10
do
done
2.{1..10}与 `seq 1 10`
{1..10}是1到10,`seq 1 10 `也是1到10,但是seq可以设定步长
例如:`seq 1 2 10` 步长为2从1到10


有如下实验:

[root@localhost mnt]# vim for.sh

这里写图片描述
执行该脚本:
这里写图片描述

[root@localhost mnt]# vim for.sh

这里写图片描述
执行该脚本:
这里写图片描述

编写脚本检测ip是否存在
[root@localhost mnt]# vim   check_host.sh 
#!/bin/bash
for IP in `seq 1 250`
do
        ping -c1 -w1 172.25.254.$IP &>/dev/null
        [ "$?" -eq "0" ]&&{
        echo "172.25.254.$IP is up"
        echo " "
}
done
建立一个数据库,编写脚本对所有数据库进行备份操作,每个数据库备份一个文件,以.sql结尾备份到/mnt/mysql_dump
[root@localhost mnt]# yum install  mariadb-server.x86_64  -y ##安装数据库
[root@localhost mnt]# systemctl start  mariadb   ##开启服务
[root@localhost mnt]# mysql -uroot  ##建立数据库

编写脚本:

[root@localhost mnt]# vim  mysql_dump.sh

这里写图片描述
执行脚本:
这里写图片描述

三、while语句

1.语句格式

while true  当条件为真执行
do
done

2.编写脚本,监控根分区的使用情况,当达到80%时给root发送邮件
查看根分区的使用情况
这里写图片描述

[root@localhost mnt]# vim checkload.sh

这里写图片描述

[root@localhost mnt]# sh  checkload.sh  &  ##打入后台
[1] 4859
[root@localhost mnt]# dd if=/dev/zero  of=/bigfile  bs=1M count=6000##截取6000M的内存使根分区使用率变成80%以上
[root@localhost mnt]# mail

这里写图片描述
这里写图片描述
3脚本编写,监控根分区的使用情况,达到80%时自动弹出至当前shell

[root@localhost mnt]# vim checkload.sh 

这里写图片描述
脚本的执行:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41476978/article/details/80776451