shellfor循环怎么写

1.linux shell for循环怎么写试读结束 , 如需阅读或下载 , 请点击购买>
原发布者:王晓波
Linuxshellfor循环语句Shell中的for循环语句与一般编程语言里的for语句有些不同 , 在shell中 , for的作用是对一组参数都执行一个操作 。其语法形式为:forcurvarinlistdostatementsdone列表是在for循环的内部要操作的对象 , 它们可以是字符串 。如果它们是文件 , 那么这些字符串就是文件名 。变量curvar是在循环内部用来指代当前所指列表中的对象的 。如果希望对List中的每个值都执行一次statements , 可以使用这种格式 。在每一次循环中 , 将List中的当前值赋给curvar 。list可以是包含一组元素的变量或者是用空格分开的值列表 。for语句的第2种格式为:forcurvardostatementsdone在这种形式中 , 对传递给shell程序的每个位置参数执行statements一次 。在每次循环中 , 将位置参数的当前值赋给变量curvar 。这种格式也可以写成如下所示的形式:[email protected]这里的[email protected]是传递给shell程序的位置参数列表 , 引用的方式与用户初始调用命令时一致 。下面的shell脚本将使用for循环依次显示列表中5个变量的值 , 假定这些脚本位于当前用户的工作目录root/look中 , 其文件名为test5 , 内容如图15所示 。在该程序的for语句中 , 首先定义了一个名为var的变量 , 它的值依次是:one、two、three、four和five 。因为有5个变量值 , 所以do和done之间的命令会被循环执行5次 。在命令行中执行该程序 , 结果如图16所示:
2.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 )do mkdir /home/kuangl/aaa${k} cd /home/kuangl/aaa${k} for l in $( seq 1 10 ) do mkdir bbb${l} cd /home/kuangl/aaa${k} done cd ..done说明: 行2,seq 用于产生从某个数到另外一个数之间的所有整数 。行4 , 在家目录下创建文件夹 。
行6 , 在使用一个for循环创建文件夹测试结果:12345678910111213141516171819202122232425[[email protected] 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[[email protected] kuangl]# cd aaa1[[email protected] 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循环处理 。