Shell脚本编程之循环(for、while、until)

Shell脚本编程之循环(for、while、until)

 

一、循环语句的对比:

for语句

while语句

until语句

执行机制:

依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束

CONDITION:循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true”,则执行一次循环;直到条件测试状态为“false”终止循环

使用格式:

for $name in 列表 ;do

循环体

done

while CONDITION; do

循环体

done

until CONDITION; do

循环体

done

循环条件:

注:for的循环是有列表控制。

(1) 直接给出列表

(2) 整数列表:

(a) {start..end}

(b) $(seq[start [step]] end)

(3) 返回列表的命令

$(COMMAND)

(4) 使用glob,如:*.sh

(5) 变量引用;

$@, $*

CONDTION一般应该有循环控制变量;而此变量的值会在循环体不断地被修正。

进入条件:CONDITIONtrue

退出条件:CONDITIONfalse

进入条件:CONDITION false

退出条件:CONDITION true

循环控制语句:

(用于循环体中)

1cotinue: continue   [N]:提前结束第#层的本轮循环,而直接进入下一轮判断;最内层为第1层。

2、使用格式:

while CONDTIITON1; do

CMD1…

if CONDITION2; then

continue

fi

CMD#

done

1break: break [N]:提前结束第#层循环,最内层为第1层。

2、使用格式:

while CONDTIITON1; do

CMD1

if CONDITION2; then

break

fi

CMD#

done

无限循环创建:

1while true; do

循环体

done

until false; do

循环体

done

For语句:

1、判断/var/目录下所有文件的类型

脚本代码:

blob.png

脚本执行结果:

blob.png

blob.png

2、添加10个用户user1-user10,密码同用户名

脚本代码:

blob.png

脚本执行效果:

blob.png

3/etc/rc.d/rc3.d目录下分别有多个以K开头和以S开头的文件;分别读取每个文件,以K开头的文件输出为文件加stop,以S开头的文件输出为文件名加start;如:“K34filename stop”;“S66filename start”

脚本代码:

blob.png

脚本执行效果:

blob.png

4、写一个脚本,提示输入正整数n的值,计算1+2+3+…n的总和

脚本代码:

blob.png

脚本执行效果:

blob.png

5、写一个脚本,提示请输入网络地址,如192.168.0.0,判断输入的网段中主机在线状态

脚本代码:

blob.png

脚本执行效果:

blob.png

6、打印九九乘法表

脚本代码:

blob.png

脚本执行效果: 

blob.png 

While语句:

1、求100以内所有正整数之和

脚本代码:

blob.png

脚本执行效果:

blob.png

2、通过ping命令探测172.16.250.1-254范围内的所有主机的在线状态,统计在线主机和离线主机各多少。

脚本代码:

blob.png

脚本执行效果:

blob.png

3、打印九九乘法表

脚本代码:

blob.png

脚本执行效果:

blob.png

4、利用变量RANDOM生成10个随机数字,输出这个10数字,并显示其中的最大者和最小者

脚本代码:

blob.png

脚本执行效果:

blob.png

5、打印国际象棋棋盘

脚本代码:

blob.png

脚本执行效果:

blob.png

 

until语句:

1、每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log,并提示该用户退出系统。

脚本代码:

blob.png

脚本执行效果:

blob.png

2、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出

脚本代码:

blob.png

脚本执行效果:

blob.png

3、编写脚本,求100以内所有正整数之和

脚本代码:

blob.png

脚本执行效果:

blob.png

4、编写脚本,通过ping命令探测172.16.250.1-254范围内的所有主机的在线状态,统计在线主机和离线主机各多少。

脚本代码:

blob.png

脚本执行效果:

blob.png

5、编写脚本,打印九九乘法表

脚本代码:

blob.png

脚本执行效果:

blob.png

6、编写脚本,利用变量RANDOM生成10个随机数字,输出这个10数字,并显示其中的最大者和最小者

脚本代码:

blob.png

脚本执行效果:

blob.png

7、编写脚本,实现打印国际象棋棋盘

脚本代码:

blob.png

脚本执行效果:

blob.png

8、打印等腰三角形

脚本代码:

blob.png

脚本执行效果:

blob.png

9、安装centos6.7,centos6.8kernel升级

挂载CentOS6.8的光盘到CentOS6.7上,将kernel-2.6.32.642版本拷贝到CentOS6.7的目录上:

blob.png

安装kernel-2.6.32.642

blob.png

重启后可以看到该界面:(如果是最小化安装的CentOS,在开机时需要按

blob.png

机器重启完成后,如下图:

blob.png

blob.png

原创文章,作者:Aaron_wang,如若转载,请注明出处:http://www.178linux.com/37033

(0)
Aaron_wangAaron_wang
上一篇 2016-08-18 10:10
下一篇 2016-08-18 10:10

相关推荐

  • 计算机的组成及其功能简述

    1、计算机的组成 (1)运算器、控制器、寄存器、缓存 –> CPU,Central Processing Unit (2)存储器 –> Memory (3)输入设备 –> Keyboard、Mouse and so on (4)输出设备 –> Displayer and so on (5…

    Linux干货 2016-09-19
  • 数据库的备份和恢复

    数据库的备份和恢复 一 (理论篇)、数据库备份与恢复基础 1、数据库的备份与恢复 备份:存储的数据副本; 原始数据:持续改变; 恢复:把副本应用到线上系统; 仅能恢复至备份操作时刻的数据状态; 时间点恢复: binary logs; 2、为什么备份? 灾难恢复: 硬件故障(冗余)、软件故障(bug)、自然灾害、黑客攻击、误操作、…&nb…

    2016-11-22
  • 最近了解到的命令

    ssh:secure  shell shell  人机交互的语言查询当前系统使用了哪个shell(接口程序) echo $SHELL 查询当前系统已安装的所有shell cat /etc/shells Shell提示符 whoami 显示当前的登录用户名 hostname 显示当前的主机名      pwd …

    Linux干货 2017-07-13
  • Linux基本命令总结

    一.目录相关的命令 mkdir rmdir tree cd ls pwd   二.文件相关命令 less cat more tac rev stat head tail cut grep cp mv rm touch rename   三.分析文本的工具 wc sort uniq cut    

    2017-09-10
  • Linux下inode理解及软、硬链接初探

    1、Inode是什么? 要理解inode,要从文件储存说起。 文件由元数据和数据构成。 文件储存在硬盘上,最小的存储单位叫做“扇区(Sector)”。每个扇区存储512字节。操作系统读取硬盘时,不会一个扇区一个扇区地读取,这样非常低效;而是一次性连续读取多个扇区,即一次性读取一个“块(block)”。“块”由多个扇区组成,常见的大小有1K、2K、4K等,其中…

    Linux干货 2016-07-29
  • Linux网络管理&脚本编程之执行流程、循环

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥(Bridge):是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switc…

    Linux干货 2016-11-14