源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

linux Shell学习笔记第四天

  • 时间:2022-04-28 10:27 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:linux Shell学习笔记第四天
本节课的脚本也同样共享在share中了。 [b]第四天:循环结构[/b] [b]内容大纲: [/b]     应用实例分析     for循环     while循环 for循环的原理 [img]http://files.jb51.net/upload/201012/20101225175703248.png[/img] [b]达到效果 [/b]     根据昨天的菜单修改。 选择1、2、3后还会提示是否继续选择的功能。选择4仍然是退出操作。 for variable in list list 变量列表池 do     command1     command2 done [b]实例一 [/b] [b]forlist.sh [/b] #!/bin/bash #for with list for loop in 1 2 3 4 5 定义loop的变量 1 2 3 4 5是变量列表 do     echo ${loop} done [img]http://files.jb51.net/upload/201012/20101225175703849.png[/img] 当后面没有,即等于0,则停止循环。 [b]实例二 [/b] [b]var.txt 为了证明变量是回车或者空格分隔,除非双引号专门分隔 [/b] 1 22 3 4 5 6 [b]forfile.sh [/b] #!/bin/bash for loop in `cat var.txt` do     echo ${loop} done [img]http://files.jb51.net/upload/201012/20101225175706401.png[/img] [b]实例三 [/b] 编写一个脚本自动生成一个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 [img]http://files.jb51.net/upload/201012/20101225175706477.png[/img] [img]http://files.jb51.net/upload/201012/20101225175706985.png[/img] [b]for循环嵌套 [/b] 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 [img]http://files.jb51.net/upload/201012/20101225175706545.png[/img] #!/bin/bash for ip3 in `seq 1 5` do     for ip4 in `seq 1 ${2}` do         echo ${1}.${ip3}.${ip4} done done [img]http://files.jb51.net/upload/201012/20101225175706505.png[/img] [b]while循环的原理 [/b] [img]http://files.jb51.net/upload/201012/20101225175706404.png[/img] 界限测试=条件测试 真假测试。 如果一直为真的话则不会停止, 死循环。 [b]while的格式 [/b] while 条件 do     命令1     命令2 done [b]while的应用场景 [/b] [b]while死循环 [/b] while [ "1" == "1" ] do     … done [b]while条件循环 [/b] while [ ${num} –lt 10] 小于10一直循环 do     … done [b]解决问题。 [/b] 使用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 [img]http://files.jb51.net/upload/201012/20101225175706210.png[/img] 课后练习 编写一个脚本,产生一个二级的菜单。 第一级有三个功能项:cpu info , memory info ,exit cpu info 第二级中有四个功能项:分别是显示cpu的类型,显示cpu的负载,返回主菜单,退出脚本 memory第二级中有四个功能项:分别是显示内存剩余量,swap的剩余量,返回主菜单,退出脚本。 总结回顾 for循环的特性 他和c语言和java不一样,不是根据判断语句去控制次数 for实现死循环很难。while做死循环很简单。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部