SHELL脚本编程进阶教程
循环
1)编程中的逻辑处理: 顺序执行 选择执行 循环执行
2)循环执行
将某代码段重复运行多次
重复运行多少次
循环次数事先已知
循环次数事先未知
有进入条件和退出条件
3)for循环
for 变量名 in 列表;do
循环体
done
执行机制: 依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直 到列表中的元素耗尽,循环结束
for循环的特殊格式:
for ((控制变量初始化;条件判断表达式;控制变量的修正表达式)) do
循环体
done
控制变量初始化:仅在运行到循环代码段时执行一次
控制变量的修正表达式:每轮循环结束会先进行控制变量修正运算,而后再做 条件判断
4)while循环
while CONDITION; do
循环体
done
CONDITION:循环控制条件;进入循环之前,先做一次判断;每一次循环之后 会再次做判断;
条件为“true”,则执行一次循环;直到条件测试状态为“false” 终止循环
因此:CONDTION一般应该有循环控制变量;而此变量的值会在循环体不断地被 修正
进入条件:CONDITION为true 退出条件:CONDITION为false
5)until循环
until CONDITION; do
循环体
done
进入条件: CONDITION 为false 退出条件: CONDITION 为true
6)循环控制语句continue
用于循环体中
continue [N]:提前结束第N层的本轮循环,而直接进入下一轮判断;
最内层为 第1层
while CONDTIITON1; do
CMD1 ...
if CONDITION2; then
continue
fi
CMDn ...
done
7)循环控制语句break
用于循环体中
break [N]:提前结束第N层循环,最内层为第1层
while CONDTIITON1; do
CMD1 ...
if CONDITION2; then
break
fi
CMDn ...
done
8)select循环和菜单
select variable in list do
循环体命令
done
select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上, 并显示 PS3 提示符,等待用户输入
用户输入菜单列表中的某个数字,执行相应的命令
用户输入被保存在内置变量 REPLY 中
select 是个无限循环,因此要记住用 break 命令退出循环,或用 exit 命令终止 脚本。也可以按 ctrl+c 退出循环
select 经常和 case 联合使用 与 for 循环类似,可以省略 in list,此时使用位置参量
9)函数介绍
函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程
它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运 行,而是shell程序的一部分 函数和shell程序比较相似,区别在于 Shell程序在子Shell中运行 而Shell函数在当前Shell中运行。 因此在当前Shell中,函数可以对shell中变 量进行修改
10)定义函数
函数由两部分组成:函数名和函数体
help function
语法一: f\_name (){
...函数体...
}
语法二: function f\_name {
...函数体...
}
语法三: function f\_name () {
...函数体...
}
函数的定义和使用:可在交互式环境下定义函数
可将函数放在脚本文件中作为它的一部分
可放在只包含函数的单独文件中
调用:函数只有被调用才会执行
调用:给定函数名 函数名出现的地方,会被自动替换为函数代码 函数的生命周期:被调用时创建,返回时终止