我们一起来学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定义局部变量,仅在函数体内有效

我们一起来学Shell - shell的函数的更多相关文章

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

    文章目录 bash的并发 未使用并发的脚本 简单修改 使用wait命令 控制并发进程的数量 文件描述符 查看当前进程打开的文件 自定义当前进程用描述符号操作文件 管道 我们一起来学Shell - 初识 ...

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

    文章目录 什么是数组 数组中常用变量 数组的定义 小括号定义数组变量 小括号加键值对定义数组变量 分别定义数组变量 动态地定义数组变量 数组赋值的切片 遍历数组 关联数组 我们一起来学Shell - ...

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

    文章目录 Shell 循环之 for 语句 Shell 循环之 while 语句 Shell 循环之 until 语句 Shell 循环控制 break指令 continue 指令 exit 指令 s ...

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

    文章目录 Shell 条件测试语法 符号说明 Shell 测试表达式 文件测试表达式 字符串测试表达式 整数操作符 逻辑操作符 测试表达式的区别总结 Shell 条件判断之if语句 单分支 IF 条件 ...

  5. shell流程控制&函数

    条件 if-then-elif-then-fi if的条件部分经常使用test EXPRESSION或[ EXPRESSION ]实现,test的用法可以参见test if 条件1 #if 条件1;t ...

  6. shell实现trim函数-去除字符串两侧的空格(包括tab,space键)

    shell实现trim函数效果去除字符串两侧的空格,以下三个命令等价,都能实现 sed 's/^\s*//' totrim.txt |sed 's/\s*$//'>trimed.txtsed ' ...

  7. shell中的函数、数组、报警系统脚本

    1.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这 个小单元的名字即可.格式: function f_name() {commond} ...

  8. shell编程之函数

    一.函数定义和调用 函数是Shell脚本中自定义的一系列执行命令,一般来说函数应该设置有返回值(正确返回0,错误返回非0).对于错误返回,可以定义其他非0正值来细化错误.使用函数最大的好处是可避免出现 ...

  9. centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课

    centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   ...

随机推荐

  1. 新增访客数量MR统计之MR数据输出到MySQL

    关注公众号:分享电脑学习回复"百度云盘" 可以免费获取所有学习文档的代码(不定期更新)云盘目录说明:tools目录是安装包res 目录是每一个课件对应的代码和资源等doc 目录是一 ...

  2. HDU 1106 (1.3.5) 排序 (C语言描述)

    排序 Problem Description 输入一行数字,如果我们把这行数字中的'5'都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以'0'开头,这些头部的'0'应该被忽略掉,除非 ...

  3. 手写Webserver

    一.反射 反射Reflection:把java类中的各种结构(方法.属性.构造器.类名)映射成一个个的java对象.利用反射技术可以对一个类进行解剖,反射是框架设计的灵魂 //在运行期间,一个类,只有 ...

  4. 如何管理leader对你的能力预期?

    在内网看到一个讨论帖,原文如下: 如何管理leader对你的能力预期? 你一个项目做得好,之后类似项目,leader认为你也就是合格水平,而且认为你只会做这种项目. SAD.. 思考 在开始之前先想下 ...

  5. 基础概念(2):怎么用cc来编译?

    怎么用cc来编译? 总结卡片: cc的使用可以很简单,指定要转换的程序文件就可以了,比如:cc hello.c. 按cc的规则(我这里是clang-llvm),程序文件以.c或.cpp为后缀. cc有 ...

  6. unity3d inputfield标签控制台打印object

    inputfield标签控制台打印object 这说明没有字符串给入 这是因为 inputfield下的text不能人为写入值,只能在game界面输入. 所以这个标签里的text做个默认值不好搞.

  7. JQ的使用

    1.hello,word <script type="text/javascript" src="js/jquery-1.10.1.js">< ...

  8. gin框架中请求参数的绑定与多数据格式处理

    package main import ( "fmt" "github.com/gin-gonic/gin" ) // gin框架提供给开发者表单实体绑定的功能 ...

  9. python 线程池使用

    传统多线程方案会使用"即时创建, 即时销毁"的策略.尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数极其频繁,那么服务器将处于 ...

  10. 使用Xamarin开发移动应用示例——数独游戏(二)创建游戏界面

    在本系列第一部分,我们创建了程序框架,现在我们创建游戏的界面,项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu .代码随项目进度更新. 首先在View ...