shell脚本之函数篇
话不多说,直接上格式:
linux shell中的函数格式:
function Myfunc(){
action;
[return int;]
}
其中,个人认为function和()都是函数的标志,如果不需要传递参数的话,选择其一即可让Myfunc表示为一个函数;
过程式的编程,涉及到一个重要的话题,即代码重用,一段代码的重用性是衡量程序脚本水平的重要指标之一。
Shell中的函数也是有生命周期的:
在被调用时创建,返回时终止。return是终止函数执行的标志。一旦出现return时,函数内剩余的内容不会被执行。
如果函数中没有return语句,缺省情况下,返回的是函数中最后一条命令的执行结果。
函数为什么需要返回值?
函数的返回值区别于函数的执行结果;
函数的执行结果可有可无,通过使用echo、print等命令输出信息;
函数的返回值,也成函数的退出状态码,一定存在,默认是函数中最后一条命令的退出状态码,否则就用return N来实现(注意这里的N必须为整数)
个人认为,函数的返回值一方面可以便于我们做脚本中的逻辑判断,通过在函数中设置不同的return值来实现不同的逻辑决策,
从而实现不同的功能,另一方面,是在函数内部去实现逻辑判断,从而终止函数的执行。
和大多数的编程语言相似,Shell脚本中的函数也可以传递参数:
① 如何传递参数?
调用函数时,在函数名后面以空白分隔开的实参列表即可;
如:
#!/bin/bash
Myfunc(){
echo "the first argument is $1"
echo "the number of arguments is $#"
return 4
}
Myfunc "hello" "world"
执行结果:
root@dbt:/home/marvin/shell# ./function.sh
the first argument is hello
the number of arguments is 2
root@dbt:/home/marvin/shell# echo $?
4
② 在函数体中,有哪些特殊变量可以引用?
如上述代码中,$1和$#的使用:
我们可以使用$1 $2 $3 ...来引用传递参数,
使用$0来引用该脚本的相对路径;
使用$#来引用传递参数的数目;
使用$*和$@来引用传递的整体参数(两者略有区别);
一切和shell脚本中原生的特殊变量类似。
③ 函数递归的实现:
转载于:https://www.cnblogs.com/temagenie/p/9442038.html
shell脚本之函数篇相关推荐
- Shell脚本中函数返回值的用法笔记
函数的返回值又可以称为函数的退出状态,实际上可以理解为一种通信方式.Shell脚本中函数可以使用返回值的方式把调用的结果信息反馈给调用者.便于调用者可以根据反馈的结果做相应处理. 说明:函数的返回值主 ...
- Linux shell 脚本编程-实战篇(三)
继: Linux shell 脚本编程-实战篇(二) 3. 一些小有意思的脚本 3.1 发送消息 3.1.1 功能分析 对于这种简单的脚本,需要的功能不多.涉及的一些命令很常见,下面了解脚本所需的几个 ...
- Linux shell 脚本编程-实战篇(二)
继: Linux shell 脚本编程-实战篇(一) 2. 创建与数据库.Web及电子邮件相关的脚本 2.1 MySQL 数据库 2.1.1 MySQL 数据库安装 到 http://repo.mys ...
- Linux系统shell脚本之函数的使用
Linux系统shell脚本之函数的使用 一.函数解释 二.函数参数 1.参数注意事项 2.特殊参数说明 三.函数实例1 四.函数实例2 一.函数解释 1.函数(function)作用:函数可以在sh ...
- linux 脚本 符号,Shell脚本 入门 —— 符号篇
shell变量 shell变量不需要进行任何声明,直接定义即可,因为shell变量的值实际上都是字符串(对于没有定义的变量默认是一个空串).定义的时候shell变量由大写字母加下划线组成,并且定义的时 ...
- Shell脚本中函数的定义和调用笔记
Shell脚本函数的作用主要是把一些可以通用的功能封装起来.避免脚本中出现大量重复的脚本代码,同时可以大大增强脚本的可读性.和可维护性. Shell函数定义的语法格式: function FUNCTI ...
- #9 shell脚本的函数运用
systemV风格的服务管理脚本: 给脚本传递一些参数:start, stop, restart, status myservice.sh #!/bin/bash # lockfile="/ ...
- Shell脚本之函数
前言:接上回分析,关于shell脚本最后一节和拐友们讲一下最后的函数,因为shell函数经常会使用. 目录 一.Shell函数 1.1Shell函数的基本格式 1.2.Shell函数的案例 1.3.函 ...
- shell脚本(function函数)
function函数 1. 函数function的作用 2. 函数的定义 3. 函数参数 4. 在函数里用本地变量 1. 函数function的作用 函数function是由若干条shell命令组成的 ...
最新文章
- UE商城资源 Kitsune狐狸女孩
- 教你用Android做二次开发,识别率达到科大讯飞语音输入水平 | 原力计划
- oracle 大页配置,ORACLE 启用大页内存
- Dubbo管理控制台的安装
- 线性模型(1) —— 多元线性回归
- org.apache.hadoop.hbase.PleaseHoldException: Master is initializing(解決方案汇总+自己摸索)
- 基于Kubernetes 构建.NET Core 的技术体系
- 二下语文书电子课本_小学生语文成绩好,不是靠补课,把课本吃透,才是高效学习方法...
- 自学html代码,新手学HTML代码的简易方法
- Android获取图片资源的4种方式
- java 项目拆分_java – 多模块项目什么时候应该拆分成单独的存储库树?
- cube云原生机器学习平台-架构(二)
- 《R语言入门与实践》第八章:S3 与 R 面对对象编程
- 深入浅出-iOS函数式编程的实现 响应式编程概念
- 当我谈缓存的时候,我谈些什么
- 关于aab转apk的方法--bundletool
- 趋势杀毒曝远程执行漏洞 可盗取用户所有密码
- Wireshark 基础 | 简介篇
- 用计算机求正有理数算术平方根的步骤,用计算器求算数平方根、用有理数估计算数平方根的大小 (2).ppt...
- Python获取抖音视频链接
热门文章
- linux 获取本机的所有IP地址
- 182. 查找重复的电子邮箱
- 动态随机存储器的刷新(集中刷新、分散刷新、异步刷新的区别)
- centos7下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named ‘_ctypes‘的解决办法
- web安全测试---WebScarab工具介绍(中间攻击,可以修改请求参数)
- SpringBoot 多环境配置
- 英语发音规则---M字母
- 用较早版本的APIs实现抽象类
- js中setAttribute 的兼容性
- 普通码农和技术大牛之间,只差这10本书(1024高能福利)