嵌入式技术笔记(九):循环语句和函数

1. 循环控制:for、while、until等结构

1、for语句循环

for <循环变量> [in <循环变量取值集>]
do <命令清单>
done
  • 如果for语句的后半部分被省略,则默认的<循环变量取值集>就是命令行参数集
    如果命令清单有多条命令,系统会依次执行

2、while循环语句

while<判别令>
do<命令清单>
done
  • 当<判别令>返回0时(对于test命令,就是其后的表达式成立),则执行do后命令清单,然后在重做循环;否则退出循环
    while控制常与shift命令结合使用
  • 练习1:编写一个shell脚本exist,用于判别其后用参数方式指定的一系列文件是否存在
    代码如下:
#!/bin/bash
#filename:exist

while test -n "$1"
do 
    if test -e $1
    then echo $1 is exist
    else echo "$1 is not exist"
    fi
    shift
done

运行截图:
练习1截图

  • 练习2:使用while语句创建一个计算1到5的平方的shell
    代码如下:
#!/bin/bash

loopcont=1
result=0
while test $loopcont -le 5  #或 while [ $loopcont -le 5 ]
do
    result=`expr $loopcont \* $loopcont`
    echo "$loopcont square is $result"
    loopcont=`expr $loopcont + 1`
done

运行截图:
练习2的运行截图
使用while语句创建一个输入exit退出的shell程序

3、until循环语句
until控制流与while控制流用法类似,但作用相反。

until<判别令>
do<命令清单>
done

当<判别令>返回非0值时,执行do后的命令清单,然后检查循环条件;当<判别令>返回0233值时3,退出循环。

2. break、continue和here
1、break和continue

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

2、here

  • 在shell中还可以利用所谓的“here文本”功能,即可在脚本文件中嵌入一段文档,作为脚本中所使用的命令的标准输入。
<命令><<!
<作为文本内容>
  • 其中“!”符号也可以使用“EOF”、“END”等替换
    使用here文本,可以方便的将一些需要进行用户交互的命令放入shell脚本中

3. 函数

  • 所有函数在使用前必须定义。这意味着必须将函数定义在脚本开始的部分,直到shell解释器首次发现它时,才可以使用
  • 向函数传递参数
    向函数传递参数和向普通脚本传递参数是一样的,也是用$1,$2,$3…
  • 从函数中返回
    当调用完函数,那么主程序可能需要得到函数的返回值。在函数中得到函数返回值可以使用以下方法:
    1、在函数末尾加return,从函数中返回,最后的命令状态决定返回值
    2、返回数值,如0或1
    格式:return 0或者return 1
  • 获取函数返回值
    用户可以直接在程序调用完函数的时候获取它的返回值
    4. source
  • source在Linux中也被称为点命令,也就是一个符号(.)
    使用source执行脚本时,脚本会在父进程中执行,各种操作都会在原本的bash内生效
  • source命令通常用于重新执行刚刚修改过初始化文件,使之立即生效,而不必注销并重新登录
  • 用法:source 文件名\ .文件名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值