跟着RUNOOB网站的教程学习的笔记

for循环

与其他编程语言类似,shell支持for循环。

for循环一般格式为:

for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done

写成一行:

for var in item1 item2 ... itemN; do command1; command2... done;

当变量值在列表里,for循环即执行一次所有命令,使用变量名获取列表中的当前取值。命令可为任何有效的shell命令和语句。in列表可以包含替换、字符串和文件名。

in列表是可选的,如果不用它,for循环使用命令行的位置参数。

例如,顺序输出当前列表中的数字:

for loop in     

do

    echo "The value is :$loop"

done

while循环

while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式为:

while condition
do
command
done

以下是一个基本的while循环,测试条件是:如果int小于5,那么条件返回真。int从0开始,每次循环处理时,int加1。运行上述脚本,返回数字0到5,然后终止。

#!/bin/bash
int=
while(( $int<=))
do
echo $int
let "int++"
done

使用中使用了Bash let命令,它用于执行一个或多个表达式,变量计算中不需要加上$来表示变量,具。

while循环可用于读取键盘信息。下面的例子中,输入信息被设置为变量FILM,按<Ctrl-D>结束循环。

echo '按下<CTRL-D>退出'
echo -n '输入你最喜欢的网站名:'
while read FILM
do
echo ”是的!$FILM是一个好网站“
done

 无限循环

while :
do
command
done

或者

while true
do
command
done

或者

for (( ; ; ))

until循环

until循环执行一系列命令直至条件为true时停止。

until循环与while循环在处理方式上刚好相反。

一般while循环优于until循环,但在某些时候一也只是极少数情况下,nutil循环更加有用。

until语法格式:

until condition
do
command
done

condition一般为条件表达式,如果返回值为false,则继续执行循环内的语句,否则跳出循环。

case语句

shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下

case 值 in
模式1)
command
;
模式2)
command
;
...
*)
command
;
esac

case工作方式如上所示。取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符号某一模式后,其间所有命令开始执行至。

取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号*捕获该值,在执行后面的命令。

下面的脚本提示输入1到4,与每一种模式进行匹配。

跳出循环

在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,shell使用两个命令来实现该功能:break和continue

break命令

break命令允许跳出所有循环(终止执行后面的所有循环)。

continue命令

continue命令与break命令类似,只有一点差别,塔不会跳出所有循环,仅仅跳出当前循环。

esac

esac的语法和C family语言差别很大,它需要一个case(就是case反过来)作为结束标记,每个case分支用右括号,用两个分号表示break。

shell脚本学习-循环的更多相关文章

  1. Shell脚本学习指南笔记

    Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...

  2. 笔记——shell脚本学习指南

    <shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...

  3. Shell 脚本学习资料搜集

    Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...

  4. 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式

    正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...

  5. 转 shell脚本学习指南

    shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题 ...

  6. Shell脚本学习 - 运算符

    继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ...

  7. shell脚本学习总结02--数组

    bash同时支持普通数组个关联数组,普通数组只能使用整数作为数组的索引,关联数组可以使用字符串作为数组的索引. 数组的定义方法: 在单行中使用一列值定义一个数组 [root@new ~]# array ...

  8. shell脚本学习之6小时搞定(1)

    shell脚本学习之6小时搞定(1) 简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把 ...

  9. shell脚本之循环语句与函数

    shell脚本之循环语句与函数 echo的用法: echo -n #表示不换行输出 echo -e #输出转义字符,将转义后的内容输出到屏幕上 转义字符: \n :换行,被输出的字符从"\n ...

随机推荐

  1. xshell下mysql数据库只导出表结构不导出数据

    操作系统:linux: 使用软件:xshell.winscp 进入系统之后输入命令: mysqldump -u 用户名 - p 密码 -d 数据库名 > aaa.sql 注意字符间的空格. 之后 ...

  2. python入门(十七)python连接mysql数据库

    mysql 数据库:关系型数据库mysql:互联网公司 sqllite:小型数据库,占用资源少,手机里面使用oracle:银行.保险.以前外企.sybase:银行+通信 互联网公司key:valuem ...

  3. “AS3.0高级动画编程”学习:第一章高级碰撞检测

    AdvancED ActionScript 3.0 Animation 是Keith Peters大师继"Make Things Move"之后的又一力作,网上已经有中文翻译版本了 ...

  4. contains用法

    判断List<UserInfoDto>里是否有重复的UserInfoDto,不能使用contains 例: List<UserInfoDto> list = new Array ...

  5. 卷积神经网络系列之softmax,softmax loss和cross entropy的讲解

    我们知道卷积神经网络(CNN)在图像领域的应用已经非常广泛了,一般一个CNN网络主要包含卷积层,池化层(pooling),全连接层,损失层等.虽然现在已经开源了很多深度学习框架(比如MxNet,Caf ...

  6. yum与rpm常用命令

    1  yum常用命令 2  rpm常用命令 1  yum常用命令 (1)列出所有可更新的软件清单命令:yum check-update (2)更新所有软件命令:yum update (4)仅安装指定的 ...

  7. python3安装pcap遇到的问题

    最近想在win7上安装pypcap,遇到了一下问题,现在大概总结一下: 直接使用pip install pypcap,提示pcap.h not found: 网上下载pypcap安装包,运行pytho ...

  8. 2018-2019-2 20175126谢文航 实验一《Java开发环境的熟悉》实验报告

    一.实验报告封面 课程:Java程序设计 班级:1751班 姓名:谢文航 学号:20175126 指导教师:娄嘉鹏 实验日期:2019年3月28日 实验时间:--- 实验序号:实验一 实验名称:Jav ...

  9. tiny4412--linux驱动学习(2)

    在ubuntu下编写验证字符设备驱动 1,准备工作 uname -r  查看电脑版本信息 apt-get  install  linux-source  安装相应版本的linux内核 2,编写驱动程序 ...

  10. windows7 ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法

    用PL/SQL连接虚拟机中的Oracle数据库,发现又报了“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误,帮其解决后,发现很多人遇到过这样的问题,因此写着这里. 也许你没 ...