linux Shell学习笔记第四天

所属分类: 脚本专栏 / 其它 阅读数: 1806
收藏 0 赞 0 分享

本节课的脚本也同样共享在share中了。

第四天:循环结构

内容大纲:

    应用实例分析

    for循环

    while循环

for循环的原理

达到效果

    根据昨天的菜单修改。 选择1、2、3后还会提示是否继续选择的功能。选择4仍然是退出操作。

for variable in list list 变量列表池

do

    command1

    command2

done

实例一

forlist.sh

#!/bin/bash

#for with list

for loop in 1 2 3 4 5 定义loop的变量 1 2 3 4 5是变量列表

do

    echo ${loop}

done

当后面没有,即等于0,则停止循环。

实例二

var.txt 为了证明变量是回车或者空格分隔,除非双引号专门分隔

1 22

3

4

5

6

forfile.sh

#!/bin/bash

for loop in `cat var.txt`

do

    echo ${loop}

done


实例三

编写一个脚本自动生成一个C类IP地址段

IP地址段网络部分由用户指定

./ipaddr.sh 192.168.1

    192.168.1.1

    192.168.1.2

    ……

    192.168.1.254

#!/bin/bash

for ip in `seq 1 254` seq 产生步进为1,即1-254的值

do

    echo ${1}.${ip}

done



for循环嵌套

for 变量名1 in 列表1

do

    for 变量名2 in 列表2

        do

            命令1

            …

        done

done

实例四

编写一个脚本自动生成一个C类IP地址段

IP地址段网络部分由用户指定,主机结束部分由用户指定

./ipaddr2.sh 192.168.1 100

192.168.1.1

192.168.1.2

……

192.168.168.1.100

#!/bin/bash

for ip4 in `seq 1 ${2}`

do

    echo ${1}.${ip4}

done


#!/bin/bash

for ip3 in `seq 1 5`

do

    for ip4 in `seq 1 ${2}`

do

        echo ${1}.${ip3}.${ip4}

done

done


while循环的原理


界限测试=条件测试

真假测试。

如果一直为真的话则不会停止, 死循环。

while的格式

while 条件

do

    命令1

    命令2

done

while的应用场景

while死循环

while [ "1" == "1" ]

do

    …

done

while条件循环

while [ ${num} –lt 10] 小于10一直循环

do

    …

done

解决问题。

使用while来产生一个死循环

通过exit来退出整个脚本

menu-while.sh

#!/bin/bash

while [ "1" == "1" ]

do

clear

echo “——————–menu—————–”

echo “1) Show Time”

echo “2) CPU load”

echo “3) Memory free”

echo “0) Exit”

echo “——————————————–”

echo -n “Enter you chose [0-3]:”

read Chose

case ${Chose} in

    0) exit ;;

    1) date +%T;;

    2) uptime | awk -F ‘[,:]‘ ‘{print $7}';;

    3) free -m | awk ‘$1==”Mem:”{print $4}';;

    *) echo “This is not between 0-3.” ;;

esac

    echo -n “Do you contine [y/n]:”

    read contine

    if [ "${contine}" == "n" -o "${contine}" == "N" ]

    then

        exit

    fi

done


课后练习

编写一个脚本,产生一个二级的菜单。

第一级有三个功能项:cpu info , memory info ,exit

cpu info 第二级中有四个功能项:分别是显示cpu的类型,显示cpu的负载,返回主菜单,退出脚本

memory第二级中有四个功能项:分别是显示内存剩余量,swap的剩余量,返回主菜单,退出脚本。

总结回顾

for循环的特性

他和c语言和java不一样,不是根据判断语句去控制次数

for实现死循环很难。while做死循环很简单。

更多精彩内容其他人还在看

我要常去的不错的几个网站收藏 强烈推荐

我要常去的不错的几个网站收藏 强烈推荐
收藏 0 赞 0 分享

RouterOS实现自动禁止过期帐号的脚本

本篇文章主要介绍了RouterOS实现自动禁止过期帐号的脚本,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

推荐的一篇用多种脚本清理iis日志的代码第1/3页

专题名称:IIS日志清理专题,CMD版,VBS版,JS版,WSH版
收藏 0 赞 0 分享

常见电子书格式及其反编译思路分析第1/3页

本文仅仅从技术角度讨论电子书反编译问题,请勿将之用于侵犯版权等等非法目的,或损害他人利益。如果您对此感到失望,请勿继续阅读。
收藏 0 赞 0 分享

FcScript V1.0 使用说明帮助文件

FcScript是由Forcal和MForcal支持的脚本控件(这两个动态库必须在windows搜索路径内,或者在文件夹“c:\FcDll”中),目前仅定义了VBScript接口,以后再增加其他接口。VBScript接口全部使用VARIANT参数。
收藏 0 赞 0 分享

用CE5.2版找武林外传一级基址的方法(图文教程)

好帖子,正好解决了我的遇到的瓶颈问题,收藏一下
收藏 0 赞 0 分享

linux Shell学习笔记第一天

从昨天开始看Shell的教程到现在已经两天了。现在把记录的笔记发出来,目前是很乱,主要是留给自己看看,后续等差不多了会整理统一发布出来。
收藏 0 赞 0 分享

linux Shell学习笔记第二天

今天做笔记稍微整理了下,但是避免不了出现错误,如果有错误麻烦大家给提出,本文最后将会共享今天的三个脚本文件。
收藏 0 赞 0 分享

linux Shell学习笔记第三天

今天收获还是比较多的。 半个小时的教程看了将近3个小时
收藏 0 赞 0 分享

linux Shell学习笔记第四天

今天的内容比较重要。循环的,课后作业还在研究中,出来答案后会贴到最后。
收藏 0 赞 0 分享
查看更多