当前位置:网站首页>shell 基础之函数编写
shell 基础之函数编写
2022-08-01 15:16:00 【Test_the_rookie】
一、为什么需要使用函数
因为shell没有模块和类的概念,当我们存在为了实现一个功能有大量的脚本需要执行时,为了便于操作,会将这些代码放在一起,通过调用一个特定的名称进行执行。提高脚本的复用率,能够优化代码结构。
二、语法
[function] 方法名()
{
需要执行的脚本
通常,[function都省略不写]
}

三、传参
3.1shell默认只支持9个参数,$1、$2分别表示第几个参数,使用shift可以传递更多的参数。

3.2、$#代表传入参数的个数,不包括$0
3.3、$$表示当前脚本执行的pid
3.4、$!后台最后一个运行的pid
补充了解:
$a与$*的区别:
在函数之间进行参数传递时,"$a"不会将传递的参数打散;$*会将传递的参数打散
四、函数调用
4.1、函数调用:调用函数时,输入函数名就可以直接调用
4.2、参数传递:在函数名后,加入一个空格,然后跟上需要传递的参数

五、debug
1.在脚本开头提供参数 #! /bin/sh -x
2.-v表示在执行过程中打印到标准错误输出
3.-n会读一遍脚本,但不会执行脚本,会会去检查语法错误
--------------------自律是一件不容易的事情,希望你可以坚持下去
边栏推荐
- LeetCode50天刷题计划(Day 9—— 整数转罗马数字(20.40-22.10)
- 打破文件锁限制,以存储力量助力企业增长新动力
- 1161. 最大层内元素和
- LeetCode50天刷题计划(Day 10—— 三数之和(20.50-22.40)
- SQL每日一练(牛客新题库)——第3天: 条件查询
- 【repo】SyntaxError: invalid syntax
- Performance Optimization - Animation Optimization Notes
- Kubernetes 进阶训练营 控制器
- Bloom filter bloom
- LeetCode50天刷题计划(Day 11—— 最接近的三数之和(8.40-10.00)
猜你喜欢

mysql 面试题

Stock Strategy 02 | Technology Timing + Industry Factors + Market Value Rotation

MySQL【数据处理的增删改】

LeetCode50天刷题计划(Day 9—— 整数转罗马数字(20.40-22.10)

开放原子全球开源峰会原圆满结束,openEuler模式得到参会者高度认可

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

SSM入门

强网杯2022 pwn 赛题解析——yakagame

Arduino无线下载 Arduino USB接口无线自动下载程序

到底什么才是真正的商业智能(BI)
随机推荐
Performance Optimization - Animation Optimization Notes
SSM入门
xmind2testcase:高效的测试用例导出工具
Meeting OA project (6) --- (to-be-opened meeting, historical meeting, all meetings)
VIM实用指南(3)复制,粘贴 ,删除,撤销,重做指令速记
Timezone setting in MySQL
2022-08-01日报:18张图,直观理解神经网络、流形和拓扑
倪光南:openEuler已达国际同类社区水准
Distributed database problem (1): data partition
只知道SQL数据库?又一国产数据库语言诞生了
线性代数的简单应用
股票预测 lstm(时间序列的预测步骤)
Grafana9.0发布,Prometheus和Loki查询生成器、全新导航、热图面板等新功能!
pwnhome 个人博客快速索引(持续更新)
在网站页脚增加几只戏水的小鱼
数据抽取过滤的时候,数据库字段update_at类型是timestamp,抽取T-1日数据这个变量条
【repo】SyntaxError: invalid syntax
大佬们,datax同步数据,同步过程中要新增一个uuid,请问column 怎么写pgsql,uu
Kubernetes 进阶训练营 控制器
Spark: Cluster Computing with Working Sets