Shell语句

匿名 (未验证) 提交于 2019-12-03 00:32:02

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语句
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!