循环的特殊用法及函数

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
下一篇 2016-08-21

相关推荐

  • N25-第一周 总结

    linux bassic The first week of blogging 概要 计算机与操作系统、linux发行版及他们之间联系与区别、Linux的哲学思想、linux系统上命令使用格式及基础命令介绍、linux命令帮助说明、FHS 一、计算机与操作系统 什么是计算机? 电子计算机(computer),亦称电脑,是一种利用电子学原理,根据一系列指令对数…

    Linux干货 2016-12-04
  • grep及正则表达式相关练习

    grep及正则表达式相关练习 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 ~]# cp -r /etc/skel/ /home/tuser1 ~]# chmod -R 700 /home/tuser1 ~]# ls -ld /home/tuser1 drwx&#821…

    Linux干货 2016-10-11
  • iptables介绍和使用

    iptables/netfilter:    Packets Filter Firewall:          包过滤型防火墙:  Firewall:隔离工具,工作于主机或网络的边缘处,对经由的报文根据预先定义的规则(识别标准)进行检测,对于能够被规则匹配到的报文实行…

    Linux干货 2017-04-29
  • liunx学习第一天知识点-基础知识

    一 计算机组成 1. 冯·诺依曼体系:     1946年数学家冯·诺依曼于提出计算机由五大部分组成:运算器、控制器、存储器、输入设备、输出设备 2. 摩尔定律:     戈登·摩尔于1965年提出来当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,…

    Linux干货 2016-07-27
  • 10分钟学会理解和解决MySQL乱码问题

    本文将详细介绍MySQL乱码的成因和具体的解决方案。在阅读本文之前,强烈建议对字符集编码概念还比较模糊的同学 阅读下博主之前对相关概念的一篇科普:十分钟搞清字符集和字符编码 MySQL出现乱码的原因 要了解为什么会出现乱码,我们就先要理解:从客户端发起请求,到MySQL存储数据,再到下次从表取回客户端的过程中,哪些环节会有编码/解码的行为。为了更好的解释这个…

    2015-03-17
  • 马哥教育网络班22期+第三周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [xw@localhost ~]$ who | cut -d' ' -f1 | uniq xw root 2、取出最后登录到当前系统的用户的相关信息。 [xw…

    Linux干货 2016-09-01

评论列表(1条)

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

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