12.5 循环 (loop)
12.5.1 while do done, until do done (不定循环)
一般来说,不定循环最常见的就是下面这两种状态了:
while 的中文是“当....时”,所以,这种方式说的是“当 condition 条件成立时,就进行循环,直到 condition 的条件不成立才停止”的意思。还有另外一种不定循环的方式:
12.5.2 for...do...done (固定循环)
相对于 while, until 的循环方式是必须要“符合某个条件”的状态, for 这种语法,则是“ 已经知道要进行几次循环”的状态!他的语法是:
以上面的例子来说,这个 $var 的变量内容在循环工作时:
1. 第一次循环时, $var 的内容为 con1 ;
2. 第二次循环时, $var 的内容为 con2 ;
3. 第三次循环时, $var 的内容为 con3 ;
12.5.3 for...do...done 的数值处理
除了上述的方法之外,for 循环还有另外一种写法!语法如下:
这种语法适合于数值方式的运算当中,在 for 后面的括号内的三串内容意义为:
初始值:某个变量在循环当中的起始值,直接以类似 i=1 设置好;
限制值:当变量的值在这个限制值的范围内,就继续进行循环。例如 i
执行步阶:每作一次循环时,变量的变化量。例如 i=i+1。
12.5.4 搭配乱数与阵列的实验
12.6 shell script 的追踪与 debug
12.7 重点回顾
shell script 是利用 shell 的功能所写的一个“程序 (program)”,这个程序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面, 搭配正则表达式、管线命令与数据流重导向等功能,以达到我们所想要的处理目的
shell script 用在系统管理上面是很好的一项工具,但是用在处理大量数值运算上, 就不够好了,因为 Shell scripts 的速度较慢,且使用的 CPU 资源较多,造成主机资源的分配不良。
在 Shell script 的文件中,指令的执行是从上而下、从左而右的分析与执行;
shell script 的执行,至少需要有 r 的权限,若需要直接指令下达,则需要拥有 r 与 x 的权限;
良好的程序撰写习惯中,第一行要宣告 shell (#!/bin/bash) ,第二行以后则宣告程序用途、版本、作者等
对谈式脚本可用 read 指令达成;
要创建每次执行脚本都有不同结果的数据,可使用 date 指令利用日期达成;
script 的执行若以 source 来执行时,代表在父程序的 bash 内执行之意!
若需要进行判断式,可使用 test 或中括号 ( [] ) 来处理;
在 script 内,$0, $1, $2..., $@ 是有特殊意义的!
条件判断式可使用 if...then 来判断,若是固定变量内容的情况下,可使用 case $var in ...esac 来处理
循环主要分为不定循环 (while, until) 以及固定循环 (for) ,配合 do, done 来达成所需任务!
我们可使用 sh -x script.sh 来进行程序的 debug