仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 753|回复: 8
打印 上一主题 下一主题

[shell编程] 带来一篇Shell中的轮回语句总结(for, while, until)

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:17:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!在编程言语中,轮回语句是最基础的语法之一,在Shell(这里是Bash)中也不破例,再把之前本人写过的相干内容收拾一下吧。
这里包含for/while/until轮回,和变量自增的语法实例。

Shell(以Bash为例)中的轮回语句一样平常有for、while、until这几种,偶然另有写错语法的时分,这里分离实例来本人总结一下。也为从此利用供应一个快速的材料猎取渠道。
1.for轮回语句
实例1.1最基础的for轮回:(传统的情势,forvarin…)

ViewCodeBASH

  1. 12345
复制代码
  1. #!/bin/bashforxinonetwothreefourdoechonumber$xdone
复制代码

注:”for”轮回老是吸收“in”语句以后的某品种型的字列表。在本例中,指定了四个英语单词,可是字列表也能够援用磁盘上的文件,乃至文件通配符。
实例1.2对目次中的文件做for轮回

ViewCodeBASH

  1. 123456
复制代码
  1. #!/bin/bashforxin/var/log/*do#echo"$xisafilelivingin/var/log"echo$(basename$x)isafilelivingin/var/logdone
复制代码

注:这个$x取得的是相对路径文件名;可使用“basename”可实行步伐来撤除后面的路径信息。假如只援用以后事情目次中的文件(比方,假如输出“forxin*”),则发生的文件列表将没有路径信息的前缀。
实例1.3对地位参数做for轮回

ViewCodeBASH

  1. 12345
复制代码
  1. #!/bin/bashforthingin"$@"doechoyoutyped${thing}.done
复制代码

实例1.4for轮回顶用seq发生轮回次数,加上C言语情势的for轮回语句
ViewCodeBASH

  1. 12345678910111213
复制代码
  1. #!/bin/bashecho"for:Traditionalform:forvarin..."forjin$(seq15)doecho$jdoneecho"for:Clanguageform:for((exp1;exp2;exp3))"for((i=1;i<=5;i++))doecho"i=$i"done
复制代码

注:关于流动次数的轮回,能够经由过程seq下令来完成,就不必要变量的自增了;这里的C言语for轮回作风是挺熟习的吧。
2.while轮回语句
实例2.1轮回输入1到10的数字

ViewCodeBASH

  1. 1234567
复制代码
  1. #!/bin/bashmyvar=1while[$myvar-le10]doecho$myvarmyvar=$(($myvar+1))done
复制代码

注:只需特定前提为真,”while”语句就会实行
3.until轮回语句
实例3.1轮回输入1到10的数字
“Until”语句供应了与“while”语句相反的功效:只需特定前提为假,它们就反复。上面是一个与后面的“while”轮回具有一律功效的“until”轮回。

ViewCodeBASH

  1. 1234567
复制代码
  1. #!/bin/bashforxinonetwothreefourdoechonumber$xdone1
复制代码

LinuxShell中写轮回时,经常要用到变量的自增,如今总结一下整型变量自增的***。
我所晓得的,bash中,变量自增,今朝有五种***:
1.i=`expr$i+1`;
2.leti+=1;
3.((i++));
4.i=$[$i+1];
5.i=$(($i+1))

能够理论一下,复杂的实比方下:

ViewCodeBASH

  1. #!/bin/bashforxinonetwothreefourdoechonumber$xdone2
复制代码
  1. #!/bin/bashforxinonetwothreefourdoechonumber$xdone3
复制代码

本文是来历于我已经的以下两篇博文:
http://www.51testing.com/?uid-225738-action-viewspace-itemid-227492
http://www.51testing.com/?uid-225738-action-viewspace-itemid-220988


如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
飘灵儿 该用户已被删除
沙发
发表于 2015-1-15 15:19:14 | 只看该作者

带来一篇Shell中的轮回语句总结(for, while, until)

每天对着单位那群白痴讲话让我觉得前途很渺茫……
只想知道 该用户已被删除
板凳
发表于 2015-1-24 17:02:32 | 只看该作者
如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的、最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。
柔情似水 该用户已被删除
地板
发表于 2015-2-2 12:45:55 | 只看该作者
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
admin 该用户已被删除
5#
发表于 2015-2-8 00:05:26 | 只看该作者
用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。
小女巫 该用户已被删除
6#
发表于 2015-2-24 09:13:40 | 只看该作者
上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题.
不帅 该用户已被删除
7#
发表于 2015-3-7 15:29:12 | 只看该作者
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
若相依 该用户已被删除
8#
发表于 2015-3-15 13:09:21 | 只看该作者
发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。它不是技术支持。
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-22 02:36:24 | 只看该作者
随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 13:37

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表