exit、break、continue
exit退出当前的循环,脚本整体退出
break只管当前的退出
continue结束当前的,但不退出循环
为了更清楚的了解这几个的区别进行以下实验:
[root@node1 mnt]# vim file.sh 文件内容如下:
执行脚本:
[root@node1 mnt]# sh file.sh //正常执行 1 2 3 4 5 hello world! [root@node1 mnt]# sh file.sh exit //exit退出当前的循环,脚本整体退出 1 2 [root@node1 mnt]# sh file.sh break //break只管当前的退出 1 2 hello world! [root@node1 mnt]# sh file.sh continue //continue结束当前的,但不退出循环 1 2 4 5 hello world! {1..5}是1到5,`seq 1 5 `也是1到5,seq可以设定步长
为了更清楚的了解进行以下实验:
[root@node1 mnt]# vim num.sh 文件内容:
执行如下:
[root@node1 mnt]# sh num.sh 1 2 3 4 5 [root@node1 mnt]# vim num.sh //重新编写 文件内容如下: 
执行如下:
[root@node1 mnt]# sh num.sh 1 2 3 4 5 [root@node1 mnt]# vim num.sh //重新编写文件内容,seq设定步长为2 文件内容如下: 
执行如下:
[root@node1 mnt]# sh num.sh 1 3 5 for做的是批处理
for
do
done
| 题目:建立一个数据库,写脚本对所有数据库进行备份操作,每个数据库备份一个文件,以.sql结尾备份到/mnt/mysql_dump |
1、建立数据库:
下载数据库mariadb-server [root@node1 mnt]# systemctl start mariadb [root@node1 mnt]# mysql -uroot Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 2 Server version: 5.5.35-MariaDB MariaDB Server Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database linux; Query OK, 1 row affected (0.10 sec) MariaDB [(none)]> use linux Database changed MariaDB [linux]> create table linux_user( -> username varchar(50) not null, -> password varchar(50) not null); Query OK, 0 rows affected (0.14 sec) MariaDB [linux]> insert into linux_user values("user1","123"); Query OK, 1 row affected (0.11 sec) MariaDB [linux]> insert into linux_user values("user2","234"); Query OK, 1 row affected (0.10 sec) MariaDB [linux]> select * from linux_user; +----------+----------+ | username | password | +----------+----------+ | user1 | 123 | | user2 | 234 | +----------+----------+ 2 rows in set (0.00 sec) MariaDB [linux]> quit Bye 2、编写脚本
[root@node1 mnt]# vim mysql_dump.sh 内容如下: 
3、执行脚本 
格式(当条件为真时执行do):
while true
do
done
| 题目:编写脚本,实时监控根分区的使用情况,超过80%就给超级用户发送一封警告邮件 |
1、编写脚本
[root@node1 mnt]# vim test.sh 内容如下: 
2、执行
[root@node1 mnt]# df //查看根分区使用情况 Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda1 10473900 9488536 985364 29% / devtmpfs 469344 0 469344 0% /dev tmpfs 484932 84 484848 1% /dev/shm tmpfs 484932 12784 472148 3% /run tmpfs 484932 0 484932 0% /sys/fs/cgroup /dev/mapper/vg0-vo 483670 2368 451811 1% /home [root@node1 mnt]# sh test.sh & //执行脚本,并打入后台 [3] 4151 [root@node1 mnt]# mail //查看没有邮件 No mail for root [root@node1 mnt]# dd if=/dev/zero of=/bigfile bs=1M count=6000 //截取6000M的内存使根分区使用率变成80%以上 [root@node1 mnt]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda1 10473900 9488536 985364 91% / devtmpfs 469344 0 469344 0% /dev tmpfs 484932 84 484848 1% /dev/shm tmpfs 484932 12784 472148 3% /run tmpfs 484932 0 484932 0% /sys/fs/cgroup /dev/mapper/vg0-vo 483670 2368 451811 1% /home [root@node1 mnt]# sh test.sh & //执行脚本并打入后台 [3] 4151 [root@node1 mnt]# mail //可以查到邮件 Heirloom Mail version 12.5 7/5/10. Type ? for help. "/var/spool/mail/root": 23 messages 23 new >N 1 root Thu Jun 21 02:11 18/590 "warning" N 2 root Thu Jun 21 02:11 18/590 "warning" N 3 root Thu Jun 21 02:11 18/590 "warning" N 4 root Thu Jun 21 02:11 18/590 "warning" N 5 root Thu Jun 21 02:11 18/590 "warning" N 6 root Thu Jun 21 02:11 18/590 "warning" N 7 root Thu Jun 21 02:11 18/590 "warning" N 8 root Thu Jun 21 02:11 18/590 "warning" N 9 root Thu Jun 21 02:11 18/590 "warning" N 10 root Thu Jun 21 02:11 18/590 "warning" N 11 root Thu Jun 21 02:11 18/590 "warning" 转载请标明出处:Shell语句
文章来源: Shell语句