循环的特殊用法及函数

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

相关推荐

  • Linux 基础(三)——用户管理&正则表达式

    1、  列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 who | cut -d " " -f1 | uniq 2、  取出最后登录到当前系统的用户的相关信息。 last -1 | cut -d " " -f1 | head -1 | id 3、  …

    Linux干货 2016-11-08
  • nginx配置(一)

    Nginx:http协议:web服务器(类似于httpd)、http reverse proxy(类似于httpd)、imap/pop3 reverse proxy NGINX is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/…

    Linux干货 2017-05-05
  • grep命令

    grep命令:grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来;grep搜索的结果被送到屏幕,不影响原文件内容。Unix的grep家族包括grep、egrep和fgrep…

    Linux干货 2016-08-08
  • grep与正则表达式

    一、grep        grep常用于文本搜索。通过自定义的模式(pattern),筛选出使用者需要的文本内容。除了有grep,还有egrep和fgrep。其中egrep = grep  –E,而fgrep则是不支持正则表达式。     &nbs…

    2017-07-29
  • 马哥教育网络19期+第十四周课程练习

    系统的INPUT和OUTPUT默认策略为DROP; 先把策略设置为DROP # iptables -t filter -P OUTPUT DROP # iptables -t filter -P INPUT DROP 1、限制本地主机的we…

    Linux干货 2016-08-22

评论列表(1条)

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

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