当前位置:网站首页>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会读一遍脚本,但不会执行脚本,会会去检查语法错误
--------------------自律是一件不容易的事情,希望你可以坚持下去
边栏推荐
- redis主从同步方式(redis数据同步原理)
- COPU 陆首群教授在 openEuler 社区首批高级顾问聘任仪式上发言
- “查找附近的商铺”|Geohash+MySQL实现地理位置筛选
- VIM实用指南(0)基本概念与初次体验
- 【论文笔记】MiniSeg: An Extremely Minimum Network for Efficient COVID-19 Segmentation
- 引用js报错$ is not defined解决办法
- The default database main key, foreign key, and the only key index
- eslint语法报错解决
- hzero-resource秒退
- 动态模型中嵌入静态模型实践
猜你喜欢

ThreadLocal保存用户登录信息

Kernel pwn 入门 (6)

MySQL中根据日期进行范围查询

VIM实用指南(0)基本概念与初次体验

SQL每日一练(牛客新题库)——第2天: 条件查询

BPM是什么意思?BPM的优势及好处有哪些?

LeetCode50天刷题计划(Day 6—— 整数反转 14.20-15.20)

布隆过滤器bloom

Chat technology in live broadcast system (8): Architecture practice of IM message module in vivo live broadcast system

倪光南:openEuler已达国际同类社区水准
随机推荐
阿里巴巴测试开发岗P6面试题
在网站页脚增加几只戏水的小鱼
"Find nearby shops" | Geohash+MySQL realizes geographic location filtering
2.8K 120Hz touch dual-screen blessing Lingyao X dual-screen Pro 2022 makes the office without fear of imagination
Stored procedures in MySQL (detailed)
有谁知道pg12.5版本的数据库驱动在哪里能找到么?
测试工程师进阶必读书目
pytorch中tensor转成图片保存
五分钟带你上手ShardingJDBC实现MySQL分库分表
COPU 陆首群教授在 openEuler 社区首批高级顾问聘任仪式上发言
全网最全音视频媒体流
解读selenium webdriver
mysql查询两个字段值相同的记录
js to determine whether it is a pc or a mobile terminal (including ipad)
docker部署mysql并修改其占用内存大小
flink -redis sink 可以sink 到集群吗?
MySQL data processing of authorization 】 【
SQL每日一练(牛客新题库)——第3天: 条件查询
DHCP配置命令(DHCP配置命令)
通胀持续 肯尼亚粮食安全引关注