资源描述
循环语句,第六章,1,本章目标,for while until select与菜单,2,语法结构,for variable in list # 每一次循环,依次把列表 list 中的一个值赋给循环变量 do # 循环开始的标志 commands # 循环变量每取一次值,循环体就执行一遍 done # 循环结束的标志,几点说明,列表 list 可以是命令替换、变量名替换、字符串和文件名列表 ( 可包含通配符 ) for 循环执行的次数取决于列表 list 中单词的个数 for 循环体中一般要出现循环变量,但也可以不出现,for 循环语句,3,执行第一轮循环时,将 list 中的第一个词赋给循环变量,并把该词从 list 中删除,然后进入循环体,执行 do 和 done 之间的命令。下一次进入循环体时,则将第二个词赋给循环变量,并把该词从 list 中删除,再往后的循环也以此类推。当 list 中的词全部被移走后,循环就结束了。,循环执行过程,位置参量的使用: $* 、 “$*” 、 $、 “$”,可以省略 in list ,此时使用“$”,for 循环执行过程,4,for (exp1;exp2;exp3) do done,类似于C语言的for 循环,5,语法结构,while expr # 执行 expr do # 若 expr 的退出状态为0,进入循环,否则退出while commands # 循环体 done # 循环结束标志,返回循环顶部,执行过程,先执行 expr,如果其退出状态为 0,就执行循环体。执行到关键字 done 后,回到循环的顶部,while 命令再次检查 expr 的退出状态。以此类推,循环将一直继续下去,直到 expr 的退出状态非 0 为止。,while 循环语句,6,语法结构,until expr # 执行 expr do # 若expr的退出状态非0,进入循环,否则退出until commands # 循环体 done # 循环结束标志,返回循环顶部,执行过程,与 while 循环类似,只是当 expr 退出状态非 0 时才执行循环体,直到 expr 为 0 时退出循环。,until 循环语句,7,用于强行退出当前循环。 如果是嵌套循环,则 break 命令后面可以跟一数字 n,表示退出第 n 重循环(最里面的为第一重循环)。,用于忽略本次循环的剩余部分,回到循环的顶部,继续下一次循环。 如果是嵌套循环,continue 命令后面也可跟一数字 n,表示回到第 n 重循环的顶部。,break n,continue n,break 和 continue,8,sleep n,exit 和 sleep,exit n,exit 命令用于退出脚本或当前进程。n 是一个从 0 到 255 的整数,0 表示成功退出,非零表示遇到某种失败而非正常退出。该整数被保存在状态变量 $? 中。,exit 命令,sleep 命令,暂停 n 秒钟,9,语法结构,说明,select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示 PS3 提示符,等待用户输入 用户输入菜单列表中的某个数字,执行相应的命令 用户输入被保存在内置变量 REPLY 中。,select variable in list do # 循环开始的标志 commands # 循环变量每取一次值,循环体就执行一遍 done # 循环结束的标志,select 循环与菜单,10,select 经常和 case 联合使用,select 是个无限循环,因此要记住用 break 命令退出循环,或用 exit 命令终止脚本。也可以按 ctrl+c 退出循环。,与 for 循环类似,可以省略 in list ,此时使用位置参量,select 与 case,11,总结,for while until select与菜单,12,
展开阅读全文