我们一起来学Shell - 初识shell


我们一起来学Shell - shell的变量


我们一起来学Shell - shell的条件判断


我们一起来学Shell - shell的循环控制


我们一起来学Shell - shell的数组


我们一起来学Shell - shell的函数


我们一起来学Shell - shell的并发及并发控制


我们一起来学Shell - 正则表达式

Shell 函数的本质是一段可以重复使用的脚本代码,这段代码被提前编写好了,放在了指定的位置,使用时直接调取即可

定义函数

  • 可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
function name () {
commands
[return value]
}
name () {
commands
[return value]
}
  • function 是 Shell 中的关键字,专门用来定义函数;

  • name 是函数名称;

  • commands 是函数要执行的代码,也就是一组语句;

  • return value 表示函数的返回值,其中 return 是 Shell 关键字,专门用在函数中返回一个值;这一部分可以写也可以不写。

  • 由 { } 包围的部分称为函数体,调用一个函数,实际上就是执行函数体中的代码。

  • 函数的优势

    • 方便n次使用,减少代码量,使之方便,整洁。
    • 当需要修改里面的重复代码时,只需要修改一次函数即可实现需求;
    • 将函数写进文件,需要时直接通过文件调用

执行不带参数的函数

直接输入函数名即可,不需要带括号

functionName
  • 执行函数时,函数名称前的关键字function和函数名称后面的()均不需要带上
  • 函数的定义必须要在执行的程序前定义或加载

执行带参数的函数

functionName arg1 arg2
  • Shell中的位置参数($1,$2$#,$?,$@)均可以做为函数的参数进行传递
  • $0比较特殊,仍然是父脚本的名称
  • 此时父脚本的参数会临时被函数的参数所掩盖或隐藏
  • 函数的参数变量是在函数体内里面进行定义

函数的执行总结

  • Shell各种程序的执行顺序为:系统别名->函数->系统命令->可执行文件等
  • 函数执行时,会和调用它的脚本共享变量,也可以为函数设定局部变量及特殊位置参数
  • 在Shell函数里面,return和exit功能类似,区别是
    • return是退出函数

      • return语句会返回一个值给调用函数的程序
    • exit则是退出脚本
      • exit则会返回一个值给执行当前脚本的Shell
  • 如果将函数单独存放为一个文件,在加载时需要使用source.进行加载
  • 在函数内部一般使用local定义局部变量仅在函数体内有效

最新文章

  1. ABP(现代ASP.NET样板开发框架)系列之4、ABP模块系统
  2. 统计SqlServer每张表内的数据量
  3. 高并发应用场景下的负载均衡与故障转移实践,AgileEAS.NET SOA 负载均衡介绍与实践
  4. Javascript 面向对象编程初探(一)--- 封装
  5. scanf中的[]
  6. 使用jQuery Mobile实现新闻浏览器(3)
  7. mysql 相关环境配置
  8. hiho #1055 : 刷油漆
  9. JSP中的路径
  10. Java中的向上造型和向下造型等
  11. Spring+SpringMVC+MyBatis深入学习及搭建(八)——MyBatis查询缓存
  12. MySQL实例
  13. 通过邮件找回密码功能的Java实现
  14. [BTS] BizTalk EDI character set and separator settings
  15. eclipse 访问GitHub 问题
  16. SpringBoot中使用SpringDataJPA
  17. html5 canvas arcTo()
  18. centos yum 安装php mysql
  19. 学习浏览器缓存(http缓存)
  20. Realm For Android详细教程

热门文章

  1. Redis可视化内存分析工具--RDR:查看Redis中key的占用情况
  2. Springboot+Druid 动态数据源配置监控
  3. Android函数抽取壳的实现
  4. 【Android】安卓中的存储
  5. 我的MySQL学习记录 完结篇DAY05~
  6. 1013day-人口普查系统
  7. golang中的rpc开发
  8. LNMP架构搭建
  9. linux中sort命令全面解析
  10. node.js request请求url错误:证书已过期 Error: certificate has expired