循环的特殊用法及函数

while特殊用法

while read 变量名;do

循环体

done<文件路径(将文件中的每一行依次读入循环体,赋值给变量)

 

(())可以实现C语言风格的变量操作

for循环特殊格式

for((控制变量初始化;条件判断表达式;控制变量修正表达式))

do

循环体

done

控制变量初始化仅在循环开始时执行一次,进行条件判断成立后执行循环体,再执行控制变量的修正,然后再条件判断,知道条件不满足为止。

select用法

select 变量名 in列表

do

      循环体命令

done

select是一个无限循环命令,要用break或exit退出循环或脚本。

select主要用于创建菜单并按照顺序输出,格式由PS3变量定义

select可以根据用户的选择执行相应的命令,用户的输入被保存再REPLE变量中

select经常与case变量一起使用

select中 in list可以省略,此时则自动读取位置变量

 

函数:函数是由若干条命令组成的语句块,有利于代码的重复利用和模块化编程

函数与shell程序相似,不同的是函数不是一个单独的进程,不能独立运行,而且shell程序是在子shell中进行,而函数则是在当前shell中运行,所以函数运行会改变当前shell中的变量值

函数的格式

      1、 function 函数名{

函数体

}

2、         function 函数名(){

函数体

}

3、         函数名(){

函数体

}

函数的定义和使用:

 可在交互式环境下定义函数 

可将函数放在脚本文件中作为它的一部分 

可放在只包含函数的单独文件中  

函数的调用:函数只有被调用才会执行; 

调用:给定函数名  函数名出现的地方,会被自动替换为函数代码  

函数的生命周期:被调用时创建,返回时终止

函数有两种返回值,一种是命令的执行结果,另一种是命令执行结果状态码

命令的执行结果可以用printf或echo进行输出,也可以进行调用

函数的退出状态码,默认是函数最后一条命令的执行结果,也可以用return进行自定义

函数必须先定义再进行调用

函数定义在一个单独的文件里可以通过.或source进行调用,但只对当前shell有效,对子shell也无效。

局部变量:在函数体内部定义的局部变量只在当前函数体内部有效,离开函数体自动失效,若脚本中有同名的本地变量或环境变量也优先使用局部变量

局部变量定义方法 locate 变量名=值

函数的递归:通过函数直接或间接的调用自身实现

原创文章,作者:zzzzz1357x1,如若转载,请注明出处:http://www.178linux.com/38542

赞 (0)
zzzzz1357x1zzzzz1357x1
上一篇 2016-08-21 20:45
下一篇 2016-08-21 20:45

相关推荐

  • MAN手册各章节功能介绍及快捷键键位整理

       初学linux ,请教别人的时候,遇到人不耐烦回答我等菜菜的问题,都会说一句,“自己去man”,“翻过man了吗,再来问吧”,哦,my gd,这个man到底是何方超人啊,其实man就是linux自带的文档,假如你不知道ls这个命令的用法,你可以试着敲入 man  ls  ,然后来看看,会有啥结果。效果不错吧,一般…

    Linux干货 2016-10-18
  • Linux之sed的使用

    sed的工作原理         sed是一种流编辑器以行为单位来处理文本的一款功能十分强大的编辑器,一次只处理一行内容,当处理文本是,将要处理的行放置在模式空间里(缓冲区),接下来sed命令处理模式空间里的内容,处理完成后,把模式空间里处理后的内容送至屏幕打印输出,接下来处理下…

    Linux干货 2016-08-09
  • 推荐-LVS专题: LVS的工作模型和调度算法介绍

    LVS专题: LVS的工作模型和调度算法介绍 LVS专题: LVS的工作模型和调度算法介绍 前言 什么是负载均衡? 什么是LVS? LVS的架构: LVS的实现模型: NAT实现原理: DR实现原理: TUN实现原理: FULLNAT实现原理: LVS的调度算法 静态调度算法(4种) 动态调度算法(6种): 总结 前言 本文大概介绍一下LVS的工作方式和实现…

    Linux干货 2016-04-05
  • 常用文本处理命令练习

    1、列出当前系统上所有已经登录的的用户的用户名,注意同一用户登录多次,则只显示一次 [root@keyou ~]#  w -hs | cut -d' ' -f 1 | sort -u  gentoo …

    系统运维 2016-11-13
  • ip子网划分

    ip子网划分 人们为了通信方便,给每台计算机分配了一个类似我们电话号码一样的标识地址。IP就好比一个人的指纹一样,在INTERNET中是独一无二的(公网中)。我们可以通过ip查询到使用该ip的主机。 现在的IP分为ipv4和ipv6。前者是32位二进制组成,为了防止IP不够用由此研发出后者ipv6,ipv6是由128位二进制组成。ipv6中包含ip的数量相当…

    Linux干货 2017-07-01
  • N25期–第七周作业

    1、创建一个10G分区,并格式为ext4文件系统; fdisk /dev/sda n p 2 enter +10G w partx -a /dev/sda (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; mke2fs -t ext4 -…

    Linux干货 2017-02-20

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-21 21:05

    对while、for等循环语句的语法总结的很细致,同时函数部分的用法也很详细,可以在文章中穿插练习中的脚本,并总结好需要注意的地方,这是经验,课后练习需要认真对待。