shell函数介绍及使用
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,注:以下内容借鉴于老男孩出版的shell编程实战这个文档编写的。一、什么是函数?在shell脚本中,函数类似Linux系统中的命令别名,可以简化程序的代码量,让程序更易读、易改、易用。简单地说,函数的
千家信息网最后更新 2025年01月25日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安全错误
数据库的锁怎样保障安全
京东12g数据库 黑市
linux服务器检查安全组
2022年网络安全预测
和平精英国服怎么换服务器
微交易是软件开发
初中生可以学懂软件开发吗
应用软件开发内容
互联网泡沫科技股
陕西商友会网络技术有限公司
梦幻西游结婚后可以转回服务器吗
人大网络安全工作责任制实施办法
交易所网络技术是什么
网络安全法顺序
病虫害数据库包括什么
软件开发相关技术文档
多个微信小程序共用一个云数据库
gmod联机服务器在哪里设置
手机网络安全微电影
山西餐饮软件开发品质售后无忧
debian 软件开发工具
新软件开发票添加商品怎么加
富阳九天网络技术有限公司
文迪软件开发有限公司
交易所网络技术是什么
网络安全女民警电视剧
软件开发设计表原则
软件开发相关技术文档
数据库固定位置给表加字段
我县网络安全宣传周
艾尔登法环上不去服务器