UNIX系统管理:shell编程循环语句(2)

7.for语句

对列表的每一条目都进行一次循环过程

,每完成一次循环过程就将var赋予列表中下一个条目,直到完成最后一个条目的循环为止

语法:            例子:

for var in list        $ cat test_for
do               for X in 1 2 3 4 5
   list A          do
done              echo "2 * $X is \c"
                let X=X*2
                echo $X
                done

                $ test_for
                2 * 1 is 2
                2 * 2 is 4
                2 * 3 is 6
                2 * 4 is 8
                2 * 5 is 10

在上例中,关键字为for,in,do和done,var代表一个shell变量的名字,这个变量的赋值会贯穿for循环的执行过程中,list是一串由空格或者tab分割开的字符串,在每一次循环执行都要将一个串赋值给var。

for循环的执行过程如下:

1.shell变量var被设置等于list中的第一个字符。

2.list A中的命令会被执行。

3.shell变量var被设置等于list中下一个字符。

4.list A中的命令被执行。

5.循环会持续执行,直到每一个list中的条目都执行过循环为止。

8.for循环的例子

例A:

$ cat example_A
for NAME in $(grep home /etc/passwd | cut -f1 -d:)
do
  mail $NAME < mtg.minutes
  echo mailed mtg.minutes to $NAME
done

例B

$ cat example_B
for FILE in *
do

 if
  test -d $FILE
 then
  ls -F $FILE

 fi

done

for结构是一种非常灵活的循环结构,它能够让循环贯穿任何能产生的列表。使用命令替代可以很容易产生生成列表,就像第一个例子使用管道和过滤器可以产生一个列表。如果你要求多次存取相同的列表,你也许想要将它存储到个文件中。你可以使用cat命令来为你的for循环产生列表,正如下例所示:

  $ cat students
  user1
  user2
  user3
  user4

  $ cat for_student_file_copy
  for NAME in $(cat students)
  do
  cp test.file /home/$NAME
  chown $NAME /home/$NAME/test.file
  chmod g-w,o-w /home/$NAME/test.file
  echo done $NAME
  done

  $

存取命令行参数

你可以从命令行参数来产生list:

for i in $*         或者     for i
do                     do 
  cp $i $HOME/backups            cp $i $HOME/backups
done                    done

时间: 2024-11-08 19:10:16

UNIX系统管理:shell编程循环语句(2)的相关文章

UNIX系统管理:shell编程循环语句(1)

完成这一章,你将能够作以下事情: 使用while语句在条件为真的时候重复地执行一段代码. 使用until语句重复执行一段代码直到条件为真. 使用交互性的for语句进行循环控制. 1.循环的简单介绍 目标: 重复的执行一段命令列表. 控制: 基于一个关键命令的返回值. 三种格式: while ... do ... done until ... do ... done for ... do ... done 循环语句让你可以重复执行一个命令列表,而决定是继续循环还是跳出循环是基于一个命令的返回值.t

UNIX系统管理:shell编程分支语句(2)

8.if语句 语法:(用于单向判断分支) if list A then list B fi 例子: if test -s funfile then echo funfile exists fi echo hello if 结构是一种基于命令返回值的的流程控制方式.如果测试命令的返回值为0,一个指定的命令列表就会被执行,如果用于判断的命令返回值为非0,指定命令列表会被忽略而不被执行. 上例中表明了if结构的一个通用的格式:每一个命令列表由一个或者多个UNIX系统的shell命令组成,每个命令之间用

UNIX系统管理:shell编程分支语句(1)

完成这一章,你将能够作以下事情: 描述条件分支语句中返回值的作用. 使用test命令来分析一个命令的返回值. 在shell程序中使用if和case结构. &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;1.返回值 shell变量"?"中保存上一个被执行命令的返回值: 0: 命令成功地执行(真) 非零: 命令由于出现错误而被终止(假) 例子: $ true $ false $ echo $? $

Shell脚本的条件控制和循环语句_linux shell

条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误. if 语句通过关系运算符判断表达式的真假来决定执行哪个分支.Shell 有三种 if ... else 语句: if ... fi 语句 if ... else ... fi 语句 if ... elif ... else ... f

ASP基础入门第五篇(ASP脚本循环语句)_应用技巧

继上一篇我们学习了脚本语言 VBScript 的函数和条件语句后,今天我们继续来看看VBScript 中的循环语句. 循环语句的作用就是重复执行程序代码,循环可分为三类:一类在条件变为"假"之前重复执行语句,一类在条件变为"真"之前重复执行语句,另一类按照指定的次数重复执行语句.在VBScript 中可使用下列循环语句: Do...Loop: 当(或直到)条件为"真"时循环. While...Wend: 当条件为"真"时循环.

UNIX系统管理:shell编程简介

完成这一章,你能做以下事情: 写出简单的shell程序 通过环境变量传递参数给shell程序 通过位置参数传递参数给shell程序 使用特殊shell变量,*和# 使用shift和read命令 1.1 shell编程概述 shell程序是一个包含UNIX命令的普通文件. 这个文件的许可权限至少应该为可读和可执行. 在shell提示符下键入文件名就可执行shell程序. shell程序可以通过三种方式接受数据: -环境变量 -命令行参数 -用户的输入 shell是一个命令解释器,它会解释并执行命令

shell脚本编程之循环语句学习笔记_linux shell

本篇博客很简单,看一下shell编程使用到的循环语句,包括for循环,while循环,until循环,for后边跟一个变量,然后是一个集合,将集合中的东西赋给这个变量,每次循环执行,这跟java中的foreach很像,while循环和if使用同样的条件判断,满足条件执行语句,until和while相反,不满足条件执行语句,是不是很简单啊,下面看一下代码吧. 复制代码 代码如下: #!/bin/sh #for循环最基本的用法 for var in "hello" "xiao t

bash 编程中循环语句用法_linux shell

1.if 是单分支语句,使用格式如下: if condition ; then statement -.. fi 2.if - else 是双分支语句,使用格式如下: if condition ; then statement -. else statement -. fi 3.if -elif-elif-else 是多分支语句,使用格式如下: if condition ; then statement -. elif condition ; then statement -.. elif co

shell脚本编程之循环语句_linux shell

在运行脚本时重复执行一系列的命令是很常见的,这时我们就需要使用循环语句来达到这个目的. 一.for命令 格式:for 变量 in 列表:do 循环体 done for命令会遍历列表中的每一个值,并且在遍历完成后退出循环. 列表形式有以下几种: 1.在命令中定义的一系列的值: 2.变量: 3.命令: 4.目录: 5.文件. 实例1: 上例中使用{初始值..结束值}格式来表示一个区间的数值. 实例2:以变量作为列表: 实例3:用命令生成列表: 上例中使用seq命令来生成列表,seq命令的格式为:se