linux中的shell脚本管理(二)
|
在Shell脚本中使用for循环语句时,可以为变量设置一个取值列表,每次读取列表中不同的变量值并执行相关命令操作,变量值用完以后则退出循环。Shell中的for语句不需要执行条件判断,其使用变量的取值来自于预先设置的值列表。 for语句结构: for 变量名 in 取值列表 do 命令序列 done 在上述语句中,使用in关键字为用户自定义变量设置了一个取值列表(以空格分隔的多个值),for语句第一次执行时首先将列表中的第一个取值赋给该变量。然后执行do后边的命令序列;然后再将列表中的第二个取值赋给该变量,然后执行do后边的命令序列......如此循环,直到取值列表中的所有值都已经用完,最后将跳至done语句,表示结束循环。 for语句示例: eg:依次输出三条文件信息,包括一天中的"Morning"、"Noon"、"Evening"字串。 vi showday.sh #!/bin/bash for TM in "Morning" "Noon" "Evening" do echo "The $TM of the day." done
eg:对于使用“/bin/bash”登录Shell的系统用户,检查他们在"/opt"目录中拥有的子目录或文件数量,如果超过100个,则列出具体数量及对应的用户账号。 vi chkfileown.sh #!/bin/bash DIR="/opt" //设置检查的目标目录 LMT=100 //设置文件数量的限制值 ValidUsers=`grep "/bin/bash" /etc/passwd | cut -d ":" -f 1` //找出使用bash的系统用户列表 for UserName in $ValidUsers do Num=`find $DIR -user $UserName | wc -l` //统计每个用户拥有的文件数 if [ $Num -gt $LMT ] ; then echo "$UserName have $Num files." fi done sh chkfileown.sh root have 20998 files 4、使用while循环语句 在Shell脚本中使用while循环语句时,将可以根据 特定的条件重复执行一个命令列表,直到该条件不再满足时为至。除非有特别需要,否则在脚本程序中应该是避免出现无限循环执行命令的情况,因为若无法跳出循环的话,后边的某些操作将无法执行。为了控制循环次数,通常会在执行的命令序列中包含修改测试条件的语句,当循环达到一定次数后,测试将不再成立,从而可以结束循环。 while语句的结构: while 条件测试命令 do 命令序列 done 在上述语句中,首先通过while判断条件测试命令的返回状态值是否为0(条件成立),如果是,则执行do后边的命令序列,然后返回到while再次进行条件测试并判断返回状态值,如果条件仍然成立,则继续执行do后边的命令序列,然后返回到while重复条件测试......如此循环,直到所测试的条件不成立时,跳转到done语句,表示结束循环。 使用while循环语句时,有两个特殊的条件测试返回值,即“true”(真)、"false"(假)。使用“true”作为测试条件时,条件将永远成立,循环体内的语句将无限次执行下去,反之使用“false”则条件永远不成立,循环体内的语句将不会被执行,这两个特殊值也可以用在if语句的条件测试中。 本栏目更多精彩内容:http://www.bianceng.cn/OS/Linux/ (编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


