shell第三章shell编程与循环语句与函数

循环的定义:重复执行一段代码的结构,通过循环,可以在满足一定的条件下,多次执行相同的代码

循环语句:

1,循环体,代码的总结构

2,循环条件,当循环条件满足时,循环体内的代码才会执行,条件不满足,循环结束

遍历的定义:对数据结构中的每个元素都进行一次访问的过程。操作以及输出。

总结:循环与遍历是结合在一起使用的,用于重复的执行代码,循环实际上就是一种控制流程的结构,用于重复执行代码。遍历就是对数据进行访问操作的过程

循环的特点:

1,重复执行代码。

2,简化程序得到逻辑,提高程序的可读性和可理解性,降低了代码出错的可能性。

3,提高了代码的重复利用率。

4,提高了效率,循环可以自动化的让程序执行,减少了人工的干预,就是提高了效率。

总结:循环就是为了批量的执行代码的一种方式,减少人工干预,提高效率

For循环:

for循环语句特点:

 

1,for循环一般用于已知次数的循环。

2,语法结构:for + 变量名

in+取值范围

do+命令序列,对取值范围内的变量进行特定的操作。

done 循环结束的标志

3,无线循环:for((;;)) 死循环的写法。

for in {1..5}

类c语言格式:

for ((表达式1;表达式2;表达式3))

do

命令序列

done

for (( i=1;1<=10;i++ ))

数字累加脚本:

 

 

累加求和:每次都是前一次的和,再加上当前循环的值,依次往后加,一直加到循环结束。

双重循环:

echo -n:表示不换行输出

echo -e:可以使用转义符

\b:理解为删除键

\n:换行,换一行输出

\t:相当于tabe键空格

\c:不换行输出,字符过长,会导致后面的字符不输出

实验例子:

 

VIM

循环控制语句:

break:满足条件之后,整个循环会立刻跳出,即使后面话语循环条件,也不再执行,整个循环结束

continue:一旦触发continue,只会跳出这一次循环,后面的循环条件会继续执行

exit:整个脚本终止运行,直接退出,后续代不再执行,整个脚本立刻退出

exit 0 :立即退出

1.计算从1到100所有整数的和 2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和 3.某山顶上有一颗香蕉树,一只猴子第一天从树上摘了若干根香蕉,当即就吃了一半,还不过瘾, 又多吃了一根。第二天猴子又将剩下的香蕉吃了一半,禁不住诱惑,又多吃了一根香蕉。 依此类推,每天都将剩余的香蕉吃一半后再多吃一根。到了第十天,猴子发现只剩一根香蕉了,请问这只猴子在第一天总共摘了多少根香蕉?

while循环的特点:

满足条件才会执行的循环,不满足就结束,主要用于不知道循环次数,需要主动结束循环或者达到条件循环的场景

 

while [条件判断]

do

命令序列

done

 

死循环的方式:

while true

while [ 1 -eq 1 ]

随机数变量:

$RANDOM:表示一个随机整数

$RANDOM范围值:0——32767

$((RANDOM%100+1)) 1-100

$((RANDOM%1000+1)) 1-1000

猜数字:

 

until循环:当判断条件不成立时,进行循环,条件成立,终止循环

 

until [条件测试语句]

do执行条件

done

 

Shell函数:

shell函数:命令序列按照格式写在一起

*重复使用的命令序列

使用函数可以避免代码的冲突,函数可以将大的工程分割成若干小的功能模块,可以提高代码的可读性

函数的格式:

function ky30 {

read -p "输入一个数:" a

a=$((a*2))

echo $a

}

ky30

格式二:

ky30 ( ) {

read -p

a=$[a*2]

}

ky30

return:表示退出函数并返回已退出值,用$?可以显示这个值,退出值是有范围的,0--255,超过255,除以256取余。在shell脚本中,return的返回值默认就是0,或者非0的返回码

总结:return作用在函数内部,在shell中return一般就是判断函数的执行情况。

exit:作用于整个脚本,立即终止,没有返回码,脚本会立刻停止运行。

exit 0 :程序是正常结束,非0就是程序异常退出

函数的应用:

 

在shell中,调用函数可以传递参数。用位置变量传参

函数变量的作用范围:函数在shell中仅在当前的shell环境中有效,在函数中定义的变量默认全局变量

递归函数:函数调用自己本身的函数

函数库:函数库中只包含函数的定义,脚本中包含调用函数的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值