我们一起来学Shell - shell的函数
我们一起来学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
- return是退出函数
- 如果将函数单独存放为一个文件,在加载时需要使用
source或.进行加载 - 在函数内部一般使用
local定义局部变量,仅在函数体内有效
我们一起来学Shell - shell的函数的更多相关文章
- 我们一起来学Shell - shell的并发及并发控制
文章目录 bash的并发 未使用并发的脚本 简单修改 使用wait命令 控制并发进程的数量 文件描述符 查看当前进程打开的文件 自定义当前进程用描述符号操作文件 管道 我们一起来学Shell - 初识 ...
- 我们一起来学Shell - shell的数组
文章目录 什么是数组 数组中常用变量 数组的定义 小括号定义数组变量 小括号加键值对定义数组变量 分别定义数组变量 动态地定义数组变量 数组赋值的切片 遍历数组 关联数组 我们一起来学Shell - ...
- 我们一起来学Shell - shell的循环控制
文章目录 Shell 循环之 for 语句 Shell 循环之 while 语句 Shell 循环之 until 语句 Shell 循环控制 break指令 continue 指令 exit 指令 s ...
- 我们一起来学Shell - shell的条件判断
文章目录 Shell 条件测试语法 符号说明 Shell 测试表达式 文件测试表达式 字符串测试表达式 整数操作符 逻辑操作符 测试表达式的区别总结 Shell 条件判断之if语句 单分支 IF 条件 ...
- shell流程控制&函数
条件 if-then-elif-then-fi if的条件部分经常使用test EXPRESSION或[ EXPRESSION ]实现,test的用法可以参见test if 条件1 #if 条件1;t ...
- shell实现trim函数-去除字符串两侧的空格(包括tab,space键)
shell实现trim函数效果去除字符串两侧的空格,以下三个命令等价,都能实现 sed 's/^\s*//' totrim.txt |sed 's/\s*$//'>trimed.txtsed ' ...
- shell中的函数、数组、报警系统脚本
1.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这 个小单元的名字即可.格式: function f_name() {commond} ...
- shell编程之函数
一.函数定义和调用 函数是Shell脚本中自定义的一系列执行命令,一般来说函数应该设置有返回值(正确返回0,错误返回非0).对于错误返回,可以定义其他非0正值来细化错误.使用函数最大的好处是可避免出现 ...
- centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课
centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 ...
随机推荐
- Visual Studio 设置背景图片主题(所有版本设置方法)
前言 效果预览: 目录 扩展安装 图片背景设置 主题透明并扩展到 IDE 内容 扩展安装 ClaudiaIDE 扩展下载 我们打开VS的扩展安装界面:[扩展]->[管理扩展]->[联机], ...
- kibana7.x安装配置操作elasticsearch
什么是Kibana? Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等. 而且还 ...
- Genymotion模拟器配置与使用
1.https://www.genymotion.com网站注册模拟器账号,并按照指引激活账号 此过程中提示商业用还是个人使用,商业使用需要有注册码,个人使用不需要注册码,我选择的是个人使用. 2.激 ...
- Windows 和 Ubuntu 的网络能互相 ping 通之后,linux无法上网原因:①路由没设置好,②DNS 没设置好
确保 Windows 和 Ubuntu 的网络能互相 ping 通之后,如果 Ubuntu 无法上网,原因通常有 2 个:路由没设置好,DNS 没设置好. 如果执行以下命令不成功,表示路由没设置好: ...
- 顺序表-Go语言实现
简单理解就是数组: 优缺点及使用场景 优点: 随机访问,在O(1)时间内找到第i个元素: 数据表中的数据是连续存放的,因此只要知道数据表中第一个元素的地址,那么后面的数据元素的地址就可以马上算出来. ...
- Spark-寒假-实验4
1.spark-shell 交互式编程 (1)该系总共有多少学生: 执行命令: var tests=sc.textFile("file:///home/hadoop/studata/chap ...
- ROS Kinetic 使用PocketSphinx进行语音识别报错
已解决,重启电脑,装环境把声卡驱动那些似乎死机了 ROS Kinetic 使用PocketSphinx进行语音识别教程 https://www.ncnynl.com/archives/201701/ ...
- 抽象类 final
抽象类 1.用abstract关键字来修饰一个类时,这个类叫做抽象类,用abstract来修饰一个方法时,这个方法叫抽象方法. 2.含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被 ...
- makefile 编译多个目标
1.静态库libtools.a源码 libtools.h #ifndef tools_h_ #define tools_h_ int sub(int x,int y); int mul(int x,i ...
- 学习MyBatis必知必会(6)~Mapper基础的拓展
一.typeAlias 类型别名[自定义别名.系统自带别名] 1.类型别名:为 Java 类型设置一个缩写名字. 它仅用于 XML 配置,意在降低冗余的全限定类名书写 2.配置自定义别名: (1)方式 ...