嵌入式笔记10 expr、循环语句(while until)

本文介绍了Linux shell脚本中的expr命令用于计算表达式的值,详细讲解了while和until循环语句的使用,包括break和continue在循环控制中的作用。此外,还提到了here文档和函数的定义及调用,以及source命令的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习目标:

expr命令
while循环语句
until循环语句
break、continue和here
函数
source

学习内容:

expr命令
格式:expr expression(命令读入expression参数,计算它的值,然后将结果写入标准输出)
参数应用规则:
1、 用空格隔开每个项
2、 用\(反斜杠)放在shell特定的字符前面
对包含空格和其他特殊字符的字符串要用引号括起来
3、 计算字符长度
4、 增量计数

说明:expr在循环中用于增量计算。先将变量初始化为0,然后循环值加1,反引号用法是命令替代
在这里插入图片描述
(累加)
在这里插入图片描述

while循环语句
while<判别令>
do<命令清单>
done
当<判别令>返回0时(对于test命令,就是其后的表达式成立),则执行do后的命令清单,然后再重做循环;否则退出循环
while控制常与shift命令结合使用

练习1:编写一个shell脚本exist,用于判别其后用参数方式指定的一系列文件是否存在
在这里插入图片描述
注:(shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本) )
(此处参数只有一个$1,循环一次后,参数左移,相当于删去,此时循环里无参数,所以退出循环)

练习2:使用while语句创建一个计算1到5的平方的shell
在这里插入图片描述

使用while语句创建一个输入exit退出的shell程序
在这里插入图片描述

3、until循环语句
until控制流与while控制流用法类似,但作用相反。
格式
until<判别令>
do<命令清单>
done

当<判别令>返回非0值时,执行do后的命令清单,然后检查循环条件;当<判别令>返回0值时,退出循环。
在这里插入图片描述
在这里插入图片描述

3、 break、continue
1、break和continue
有时需要基于某些准则退出循环或跳过循环shell提供了两个命令实现功能
break和continue的区别:
break是跳出整个循环;continue是跳出本次循环

4、here
在shell中还可以利用所谓的“here文本”功能,即可在脚本文件中嵌入一段文档,作为脚本中所使用的命令的标准输入。

<命令><<!
<作为文本内容>

其中“!”符号也可以使用“EOF”、“END”等替换

使用here文本,可以方便的将一些需要进行用户交互的命令放入shell脚本中
在这里插入图片描述
(输入姓名,输出号码)

函数
所有函数在使用前必须定义。这意味着必须将函数定义在脚本开始的部分,直到shell解释器首次发现它时,才可以使用
在这里插入图片描述

向函数传递参数和向普通脚本传递参数是一样的,也是用$1,$2,$3
在这里插入图片描述
(调用函数)

从函数中返回
当调用玩函数,那么注程序可能需要得到函数的含税值,在函数中得到函数的返回值可以使用以下方法
1、 在函数末尾加return,从函数中返回,用最后的命令状态决定返回值
2、 返回数值,如0或1 格式:return 0或return 1
在这里插入图片描述
在这里插入图片描述

获取函数的返回值 用户可以直接在程序调用完函数的时候获取他的返回值
在这里插入图片描述
在这里插入图片描述

Source

Source在Linux中也被称为点命令,也就是一个符号(.)
使用source执行脚本时,脚本会在父进程中执行,各种操作都会在原本的bash内生效

Source命令通常用于重新执行刚刚修改过初始化文件,使之立即生效,而不必注销并重新登录

用法:source文件名\ 文件名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_49181551

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值