目录
目录
一、for循环语句
使用 for 循环语句时,需要指定一个变量及可能的取值列表,针对每一个不同的取值重复执行相同的命令序列,直到变量值用完退出循环。在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令相同。
首先将列表中的第1个取值赋给变量,并执行 do···done 循环体中的命令序列
然后将列表中的第2个取值赋给变量,并执行循环体中的命令序列……
以此类推,直到列表中的所有取值用完,最后将跳至 done 语句,表示结束循环
for循环语句的语句结构
for 变量名 in $LIST (1、为变量准备赋值的元素 2、决定循环次数)
do
命令系列
done
或者
for ((i=*;i<=*;1++)) (定义变量起始值;定义循环结束条件;控制循环次数)
do
命令序列
done
列出奇偶数
计算10以内的奇数和
检查ip存活状态
幸运会员
用户列表
数字炸弹游戏Ⅰ
要求在1-100内定义一个数字,与用户交互,要求,每次提醒用户,数字猜大了还是猜小了,直到猜中为止,最后统计猜的次数
PS:每次猜的数字不允许重复(脚本自身检测)
脚本内容
二、while循环语句
for循环语句非常适用于列表对象无规律,且列表来源已固定(如某个列表文件)的场合。而对于要求控制循环次数、操作对象按数字顺序编号、按特定条件执行重复操作等情况,则更适合使用另一种循环—while语句。
使用 while循环语句时,可以根据特定的条件反复执行一个命令序列,直到该条件不再满足时为止。但是在脚本应用中,应该避免出现死循环的情况,否则后边的命令操作将无法执行。
循环体内的命令序列中应包括修改测试条件的语句,以便在适当的时候使测试条件不再成立,从而结束循环。
while语句语法结构:
while 条件测试操作
do
命令序列
done
执行流程:
首先判断 while 后的条件测试操作结果,如果条件成立,则执行 do···done 循环体中的命令序列
返回 while 后再次判断条件测试结果,如果条件仍然成立,则继续执行循环体
再次返回到 while 后,判断条件测试结果…如此循环
直到 while 后的条件测试结果不再成立为止,最后跳转到 done 语句,表示结束循环
列出1-100之间能被3整除的数
三、until循环语句
重复测试某个条件,只要条件不成立则反复执行
until语句语法结构:
until 条件测试操作
do
命令序列
done
计算1-60的值
四、循环嵌套
- 一个==循环体==内又包含另一个完整的循环结构,称为循环的嵌套。
- 每次外部循环都会==触发==内部循环,直至内部循环完成,才接着执行下一次的外部循环。
- for循环、while循环和until循环可以相互嵌套。
进入商店购物
99乘法表
打印倒三角:
五 shell 函数
1、shell函数定义
将命令序列按格式写在一起
可方便重复使用命令序列
2、函数基本格式
[function] 函数名() {
命令序列
[return x] #使用return或exit可以显示的结束函数
}
或者
#也可以省略掉[function],它表示该函数的功能
函数名() { #函数名后面()是没有内容的
命令序列 #我们执行的命令内容放在{}里面
}
函数定义完之后并不会自动执行,需要调用才行,好处在于可以写一段功能代码作为函数,有需要就直接调用。定义的时候哪怕出现语法错误也没关系,不调用就不会报错,当然我们写函数最终目的还是为了调用,为了实现某个功能块。
3、函数返回值return
表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值
使用原则:
函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码
退出状态码必须是0~255,超出时值将为256取余(例如:返回码为300,那么将300%256)
4、函数使用实例
①函数调用
遇到重名时只执行最后一个
两个函数一起执行
5、调用函数安装本地yum源
6、函数的作用范围
在Shell 脚本中函数的执行并不会开启一个新的子Shell,而是仅在当前定义的Shell 环境中有效。如果Shell脚本中的变量没有经过特殊设定,默认在整个脚本中都是有效的。在编写脚本时,有时需要将变量的值限定在函数内部,可以通过内置命令local 来实现。函数内部变量的使用,可以避免函数内外同时出现同名变量对脚本结果的影响
函数内部使用local 命令设置变量a,其作用是将变量a限定在函数内部。函数外部同样定义了变量a,内部变量a和全局变量a互不影响。脚本执行时先调用了函数,函数内部变量a为5,所以输出结果是1。调用完函数之后,给变量a赋值为2,再打印外部变量a,所以又输出2.
7、函数的参数
参数的用法
函数名称 参数1 参数2 参数3...
参数的表示方法
$1 $2 $3 ......${10} ${11}......
1、
2.用户输入两个参数
8、函数的递归
Shell 也可以实现递归函数,就是可以调用自己本身的函数。在Linux系统上编写Shell 脚本的时候,经常需要递归遍历系统的木,列出目录下的文件和河路,逐层递归列出,并对这些层级关系进行展示。
列出目录内文件列表,目录用蓝色表示,文件显示层级关系