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一般应该有循环控制变量;而此变量的值会在循环体不断地被修正。 进入条件:CONDITION为true; 退出条件:CONDITION为false |
进入条件:CONDITION 为false 退出条件:CONDITION 为true |
循环控制语句: (用于循环体中) |
1、cotinue: continue [N]:提前结束第#层的本轮循环,而直接进入下一轮判断;最内层为第1层。 2、使用格式: while CONDTIITON1; do CMD1… if CONDITION2; then continue fi CMD# done |
||
1、break: break [N]:提前结束第#层循环,最内层为第1层。 2、使用格式: while CONDTIITON1; do CMD1 if CONDITION2; then break fi CMD# done |
|||
无限循环创建: |
1、while true; do 循环体 done |
||
until false; do 循环体 done |
For语句:
1、判断/var/目录下所有文件的类型
脚本代码:
脚本执行结果:
2、添加10个用户user1-user10,密码同用户名
脚本代码:
脚本执行效果:
3、/etc/rc.d/rc3.d目录下分别有多个以K开头和以S开头的文件;分别读取每个文件,以K开头的文件输出为文件加stop,以S开头的文件输出为文件名加start;如:“K34filename stop”;“S66filename start”
脚本代码:
脚本执行效果:
4、写一个脚本,提示输入正整数n的值,计算1+2+3+…n的总和
脚本代码:
脚本执行效果:
5、写一个脚本,提示请输入网络地址,如192.168.0.0,判断输入的网段中主机在线状态
脚本代码:
脚本执行效果:
6、打印九九乘法表
脚本代码:
脚本执行效果:
While语句:
1、求100以内所有正整数之和
脚本代码:
脚本执行效果:
2、通过ping命令探测172.16.250.1-254范围内的所有主机的在线状态,统计在线主机和离线主机各多少。
脚本代码:
脚本执行效果:
3、打印九九乘法表
脚本代码:
脚本执行效果:
4、利用变量RANDOM生成10个随机数字,输出这个10数字,并显示其中的最大者和最小者
脚本代码:
脚本执行效果:
5、打印国际象棋棋盘
脚本代码:
脚本执行效果:
until语句:
1、每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log中,并提示该用户退出系统。
脚本代码:
脚本执行效果:
2、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出
脚本代码:
脚本执行效果:
3、编写脚本,求100以内所有正整数之和
脚本代码:
脚本执行效果:
4、编写脚本,通过ping命令探测172.16.250.1-254范围内的所有主机的在线状态,统计在线主机和离线主机各多少。
脚本代码:
脚本执行效果:
5、编写脚本,打印九九乘法表
脚本代码:
脚本执行效果:
6、编写脚本,利用变量RANDOM生成10个随机数字,输出这个10数字,并显示其中的最大者和最小者
脚本代码:
脚本执行效果:
7、编写脚本,实现打印国际象棋棋盘
脚本代码:
脚本执行效果:
8、打印等腰三角形
脚本代码:
脚本执行效果:
9、安装centos6.7,用centos6.8kernel升级
挂载CentOS6.8的光盘到CentOS6.7上,将kernel-2.6.32.642版本拷贝到CentOS6.7的目录上:
安装kernel-2.6.32.642:
重启后可以看到该界面:(如果是最小化安装的CentOS,在开机时需要按↓)
机器重启完成后,如下图:
原创文章,作者:Aaron_wang,如若转载,请注明出处:http://www.178linux.com/37033