shell脚本的常用循环
在简单介绍shell脚本(shell script)之前,先简单介绍一下shell。在计算机科学中, shell (壳层)指“为用户提供用户界面”的软件,通常指的是命令行界面的解析器。一般来说,这个词是指操作系统中,提供访问内核所提供之服务的程序。Shell也用于泛指所有为用户提供操作界面的程序,也就是程序和用户交互的接口。因此与之相对的是程序内核(英语:Kernel),内核不提供和用户的交互功能。不过这个词也拿来指应用软件,或是任何在特定组件外围的软件,例如浏览器或电子邮件软件是HTML排版引擎的shell。Shell这个词是来自于操作系统(内核)与用户界面的外层界面。通常将shell分为两类:命令行与图形界面。命令行壳层提供一个命令行界面(CLI);而图形壳层提供一个图形用户界面(GUI)。shell脚本 (英语:shell script),又称shell命令稿、程序化脚本,是一种电脑程序与文本文件,内容由一连串的shell命令组成,经由Unix Shell直译其内容后运作。被当成是一种脚本语言来设计,其运作方式与解释型语言相当,由Unix shell扮演命令行解释器的角色,在读取shell脚本之后,依序运行其中的shell命令,之后输出结果。利用shell脚本可以进行系统管理,文件操作等。在Unix及所有的类Unix系统中,如Linux、FreeBSD等操作系统,都存在shell脚本。依照Unix shell的各种不同类型,shell脚本也有各种不同方言,如 Bourne shell (sh), Bourne-Again shell (bash), C shell (csh)等等。在DOS、OS/2、Microsoft Windows中的批处理文件,跟shell脚本有类似的功能。常见的shell脚本循环语法包括for、while和until。除此之外,还有一些其他语法,能够实现循环(遍历)功能。和循环相关的还有循环控制符break和continue,用于控制流程转向。for循环属于“当型循环”,即“当满足条件的时候执行”。for循环有三种类型:常见的数值for循环语法还有:for file in $( ls )语法的等效语法有很多,如下:或者类C风格的for循环,和C没有太大的区别,这里只进行示例,不再赘述。或者结果:也称为前测试循环语句,重复次数是利用一个条件来控制是否继续重复执行这个语句。为了避免死循环,必须保证循环体中包含循环出口条件即表达式存在退出状态为非0的情况。例如,计算1~100以内所有的奇数之和:当然,条件可以使字符串,可以是输入值,可以是标记等,此处不再赘述。until命令和while命令类似,while能实现的功能until也可以实现。但区别是until循环的退出状态是为0(与while刚好相反),即whie循环在条件为真时继续执行循环,而until则在条件为假时执行循环。例如,计算1~100以内所有的奇数之和:select结构从技术角度看不能算是循环结构,只是相似而已,它是bash的扩展结构用于交互式菜单显示,功能类似于case结构,但是比case的交互性要好。在遍历列表功能中,select结构可以实现循环的功能。例如,以下选择,只有选择white的时候,退出循环在循环语法中,经常需要根据条件控制循环退出或跳过本次执行,这时候就需要用到循环控制符。循环控制符主要包括两个:break和continue。循环控制符和C以及Java等常见语法功能类似,在理不再赘述,只给出常用示例。在for、while和until循环中break可强行退出循环。注意:break语句仅能退出当前的循环,如果是两层循环嵌套,则需要在外层循环中使用break。例如,计算1~100以内所有的奇数之和:在for、while和until中用于让脚本跳过其后面的语句,执行下一次循环。例如,显示10以内能被3整除的正整数。以上是自己在学习Linux的过程中的一部分总结,和大家共享。同时,也参考了其他人的博客,在参考列表中列出来了。

while until for switch 哪个不是shell的循环控制结构
linux shell编程 ---- 循环结构1 for循环1 for循环是linux Shell中常用的结构,for循环有三种结构;一种是列表for循环,第二种是不带列表的for循环,第三种是类C风格的for循环。 2 列表for循环 for variable in list do statement done3 不带列表for循环for variabledostatementdone 4 类C风格的for循环for (( expr1; expr2; expr3 ))dostatementdone2 while循环1 while循环的结构while expressiondostatementdone 3 until循环1 在执行while循环的时候只要expression的退出状态为0,将一直执行循环体。until命令和while命令类似,但区别是until循环中的expression的退出状态不为0的时候循环体将会一直执行。2 until的结构 untile expression do statement done 4 循环控制符号1 break语句可以应用在for,while和until循环语句中,用于强行循环,也就是忽略循环体中任何其它语句和循环条件的限制。2 continue循环控制符应用在for,while和until语句中,用于让脚本跳过后面的语句,执行下一次的循环。
随你

shell多层循环
for循环do..done就够了,或者用{},例如: #!/bin/shsum=0for (( i=1;i<10;i++))do((sum=sum+i));doneecho $sum或者#!/bin/shsum=0for (( i=1;i<10;i++)){((sum=sum+i));} echo $sum

while until for switch 哪个不是shell的循环控制结构
linux shell编程----循环结构1for循环1for循环是linuxShell中常用的结构,for循环有三种结构;一种是列表for循环,第二种是不带列表的for循环,第三种是类C风格的for循环。2列表for循环forvariableinlistdostatementdone3不带列表for循环forvariabledostatementdone4类C风格的for循环for((expr1;expr2;expr3))dostatementdone2while循环1while循环的结构whileexpressiondostatementdone3until循环1在执行while循环的时候只要expression的退出状态为0,将一直执行循环体。until命令和while命令类似,但区别是until循环中的expression的退出状态不为0的时候循环体将会一直执行。2until的结构untileexpressiondostatementdone4循环控制符号1break语句可以应用在for,while和until循环语句中,用于强行循环,也就是忽略循环体中任何其它语句和循环条件的限制。2 continue循环控制符应用在for,while和until语句中,用于让脚本跳过后面的语句,执行下一次的循环。

shell里的for循环怎么写
for循环的运作方式,是讲串行的元素意义取出,依序放入指定的变量中,然后重复执行含括的命令区域(在do和done 之间),直到所有元素取尽为止。 其中,串行是一些字符串的组合,彼此用$IFS所定义的分隔符(如空格符)隔开,这些字符串称为字段。for的语法结构如下:1234for 变量 in 串行do执行命令done说明:行1,讲串行中的字段迭代放入变量中行2-4,接着将重复执行do和done之间的命令区域,直到串行中每一个字段军处理过为止。流程图:用例1用for循环在家目录下创建aaa1-aaa10,然后在aaa1-aaa10创建bbb1-bbb10的目录123456789101112#!/bin/bashfor k in $( seq 1 10 )domkdir /home/kuangl/aaa${k}cd /home/kuangl/aaa${k}for l in $( seq 1 10 )domkdir bbb${l}cd /home/kuangl/aaa${k}donecd ..done说明:行2,seq 用于产生从某个数到另外一个数之间的所有整数。行4,在家目录下创建文件夹。行6,在使用一个for循环创建文件夹测试结果:12345678910111213141516171819202122232425[root@test01 kuangl]# lltotal 80drwxr-xr-x 12 root root 4096 Jul 20 01:23 aaa1drwxr-xr-x 12 root root 4096 Jul 20 01:23 aaa10drwxr-xr-x 12 root root 4096 Jul 20 01:23 aaa2drwxr-xr-x 12 root root 4096 Jul 20 01:23 aaa3drwxr-xr-x 12 root root 4096 Jul 20 01:23 aaa4drwxr-xr-x 12 root root 4096 Jul 20 01:23 aaa5drwxr-xr-x 12 root root 4096 Jul 20 01:23 aaa6drwxr-xr-x 12 root root 4096 Jul 20 01:23 aaa7drwxr-xr-x 12 root root 4096 Jul 20 01:23 aaa8drwxr-xr-x 12 root root 4096 Jul 20 01:23 aaa9[root@test01 kuangl]# cdaaa1[root@test01 aaa1]# lltotal 40drwxr-xr-x 2 root root 4096 Jul 20 01:23 bbb1drwxr-xr-x 2 root root 4096 Jul 20 01:23 bbb10drwxr-xr-x 2 root root 4096 Jul 20 01:23 bbb2drwxr-xr-x 2 root root 4096 Jul 20 01:23 bbb3drwxr-xr-x 2 root root 4096 Jul 20 01:23 bbb4drwxr-xr-x 2 root root 4096 Jul 20 01:23 bbb5drwxr-xr-x 2 root root 4096 Jul 20 01:23 bbb6drwxr-xr-x 2 root root 4096 Jul 20 01:23 bbb7drwxr-xr-x 2 root root 4096 Jul 20 01:23 bbb8drwxr-xr-x 2 root root 4096 Jul 20 01:23 bbb91用例2列出var目录下各子目录占用磁盘空间的大小。1234567#!/bin/bashDIR="/var"cd $DIRfor k in $(ls $DIR)do[ -d $k ] && du -sh $kdone说明:行4,对/var目录中每一个文件,进行for循环处理。行6,如果/var下的文件是目录,则使用du -sh计算该目录占用磁盘空间的大小。测试结果:12345678910111213141516171819202122[root@test01 scripts]# ./var.sh276Mcache4.0Kcvs84K db8.0Kempty4.0Kftp4.0Kgames4.0Kgdm21G lib4.0Klocal16K lock7.4Glog4.0Klogs0 mail4.0Knis4.0Kopt4.0Kpreserve336Krun3.7Gspool212Ktmp4.1Gwww 4.0Kyp

本文由 在线网速测试 整理编辑,转载请注明出处。