shell函数介绍及使用
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,注:以下内容借鉴于老男孩出版的shell编程实战这个文档编写的。一、什么是函数?在shell脚本中,函数类似Linux系统中的命令别名,可以简化程序的代码量,让程序更易读、易改、易用。简单地说,函数的
千家信息网最后更新 2025年12月02日shell函数介绍及使用
注:以下内容借鉴于老男孩出版的shell编程实战这个文档编写的。
一、什么是函数?
在shell脚本中,函数类似Linux系统中的命令别名,可以简化程序的代码量,让程序
更易读、易改、易用。
简单地说,函数的作用就是将程序里多次被调用的相同代码组合起来(函数体),并为其取一个名字(即函数名),其他所有想重复调用这部分代码的地方都只需要调用这个名字就可以了。当需要修改这部分重复代码时,只需要改变函数体内的一份代码即可实现对所有调用的修改,也可以把函数独立地写到文件里,当需要调用函数时,再加载进来使用。
使用shell函数的优势如下:
- 把相同的程序段定义成函数,可以减少整个程序的代码量,提升开发效率;
- 增加程序的可读性、易读性,提升管理效率;
- 可以实现程序功能模块化,使得程序具备通用性(可移植性)。
二、shell函数的语法
(1)标准写法如下:
function 函数名() { #推荐使用此格式,花括号里面写入的就是要执行的命令 return n}(2)简化写法如下:
函数名() { #不用function的方法 指令... return n}在shell函数的语法中,function表示声明一个函数,这部分可以省略不写。
三、shell函数的执行
shell的函数分为最基本的函数和可以传参的函数两种,其执行方式分别如下:
(1)执行不带参数的函数时,直接输入函数名即可(注意不带小括号),格式如下:
函数名有关执行函数的重要说明:
- 执行shell函数时,函数名前的function和函数后的小括号都不要带;
- 函数的定义必须在要执行的程序前面定义或加载;
- shell执行系统中各种程序的执行顺序为:系统别名→函数→系统命令→可执行命令;
- 函数执行时,会和调用它的脚本共用变量,也可以为函数设定局部变量及特殊位置参数;
- 在shell函数里面,return命令的功能和exit类似,return的作用是退出函数,而exit是退出脚本;
- return语句会返回一个退出值(即返回值)给调用函数的当前程序,而exit会返回一个退出值(即返回值)给执行程序的当前shell;
- 如果将函数存放在独立的文件中,被脚本加载使用时,需要使用source或"."来加载。
- 在函数内一般使用local定义局部变量,这些变量离开函数后就会消失。
(2)带参数的函数执行方法,格式如下:
函数名 参数1 参数2函数后面接参数的说明:
- shell的位置参数($1、$2...、$#、$?及$@)都可以作为函数的参数来使用;
- 此时父脚本的参数临时地被函数参数所掩盖或隐藏;
- $0比较特殊,它仍然是父脚本的名称;
- 当函数执行完成时,原来的命令行脚本的参数即可恢复;
- 函数的参数变量是在函数体里面定义的。
四、shell函数的基础使用举例
(1)示例1:
[root@localhost ~]# vim a.sh#!/bin/bash#以下是定义a和b两个函数function a(){ echo "aaaaaaaaaaa"}function b(){ echo "bbbbbbbbbbb"}b #在脚本中执行函数名以便调用函数,这里先调用了函数ba #再调用函数a[root@localhost ~]# sh a.sh #执行结果如下bbbbbbbbbbbaaaaaaaaaaa老男孩编写的关于shell函数的内容,只有两个大的脚本没有写上来了,建议看原版文档来了解shell,后面的内容,我没什么耐心写了,可以在我博客置顶文章的末尾,下载原版文档进行学习。
函数
参数
程序
脚本
命令
代码
变量
系统
内容
括号
文档
格式
特殊
相同
两个
位置
作用
写法
别名
功能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
r星服务器在哪个国家
360网络安全大神
我国当今网络安全现状分析
cesium如何连接数据库
闪惠互联网科技有限公司
sa服务器是什么
qt查看数据库中所有的表
全城封锁2无法连接服务器
现场总线控制网络技术试题
平安网络安全认证
商丘网络安全课堂在哪里
金华工业软件开发计划
中联系统数据库连接失败
上海特色软件开发要多少钱
网络安全技术分为那八大类
街道专门定制网络安全自查
软件开发工程师前端和后端
如何辨别网络安全隐患
福建系统软件开发哪家好
php里面数据库密码修改
学校的服务器跟距离有关吗
律所服务器
无锡装配式软件开发特点
现场总线控制网络技术试题
前端也要会管理服务器吗
网络安全管
360网络安全防护怎么开启
街道专门定制网络安全自查
布币网络技术有限公司
大写字母如何插入数据库