shell编程之循环语句与函数

循环:重复执行一段代码的结构,通过循环,可以在满足一定条件下,多次执行相同的代码 遍历:对数据结构中每个元素都进行一次访问、操作、输出的过程

循环语句一般包含两个方面:

1.循环体,代码的总结构; 2.循环条件,当循环条件被满足时,循环体内的代码才会执行,条件不满足,循环结束。

循环的特点:

1.重复执行代码。 2.简化程序的逻辑,提高了程序的可读性和可理解性,降低了代码出错的可能性。 3.提高了代码的重复利用率。 4.提高了效率,循环可以自动化的让程序执行,减少了人工的干预,提高了效率

循环的作用:

为了批量的执行代码的一种方式,减少人工干预,提高工作效率

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

循环语句:

for循环语句:读取不同的变量值,用来逐个执行同一组命令

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

2.语法结构:

for [变量名] in [取值列表] do 命令序列(对取值范围内的变量进行特定的操作) done(循环结束的标志)

3.无限循环:for ((;;))

4.类c语言格式:

for ((表达式1;表达式2;表达式3)) / for ((i=1;=<=1=;1++)) do 命令序列 done

5.for [变量名] in {1..10}

批量执行命令

1.批量添加用户

调用user.txt的内容,批量添加文件中的用户名和修改密码

set -x:开启调试

set +x:结束测试

uesr.txt:

运行结果:

2.批量搜寻主机是否存在,将存在的主机放入hosts.txt文件中

调用ip.txt的内容,每个主机ping五次,把能ping通的ip地址放到hosts.txt文件中,不能ping通的显示不能ping通

ip.txt:

ping的过程我们可以把它丢到黑洞文件(/dev/null)中:

运行结果:

数字累加:

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

1.实现{1..10}的累加

sum=$(($i+$sum)):累加

2.实现{1..100}的基数相加和偶数相加

双重循环:

转义符:

echo -n:表示不换行输出

echo -e :可以使用转义符

\b:理解为删除键

\n:换行,换一行输出

\t:相当于tab键的空格

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

1.做一个乘法口诀表

第一次的for循环表示执行了几次循环,则表示行数;第二次的for循环表示每次循环有几列,则表示列数

循环控制语句:

break:一旦触发了break,整个循环会立刻跳出,即使后面还有循环条件,也不再执行了,整个循环结束

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

continue后面的数字代表控制循环的层数

exit:直接退出,后续代码不再执行

while循环语句:while满足条件执行循环,不满足结束循环

用于不知道循环次数,需要主动结束循环或者达到条件循环的场景。

格式:

while [ 条件判断 ] do 命令序列 done

做一个100以内所有数的累加:

let i++ :让变量自增不然会陷入死循环

死循环的方式:

while true while [ 1 -eq 1 ]

随机变量:

$RANDOM:表示一个随机整数 $RANDOM范围值:0——32767 $((RANDOM%100+1)) 1-100 $((RANDOM%1000+1)) 1-1000

做一个猜数字游戏:

until语句:重复测试某个条件,只要条件不成立则反复执行

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

格式:

until [ 条件测试语句 ] do 命令序列 done

做一个10以内所有数的累加:

实验:

1.ping一个网段,ping通的提示“ip is offline”并记录在/opt/while/hosts.txt文件中,ping不通的提示“ip is offline”

{ }&:并行执行

2.利用循环把/opt/test目录下的.txt文件的内容合并到一个文件

3.shell计算器:整数的运算,加减乘除

4.商场购物:

淘宝中有一家店: 衣服 500 裤子 400 鞋子 300 帽子 200 袜子 100 每次选购完成之后都要提示用户是否继续购买,如果用户不买了,要提示结算金额,你消费了多少 如果继续买,就继续添加商品,最后也要给一个总金额

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值