shell函数介绍及使用
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,注:以下内容借鉴于老男孩出版的shell编程实战这个文档编写的。一、什么是函数?在shell脚本中,函数类似Linux系统中的命令别名,可以简化程序的代码量,让程序更易读、易改、易用。简单地说,函数的
千家信息网最后更新 2024年11月28日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安全错误
数据库的锁怎样保障安全
人社局贯彻网络安全和信息化
汽车制造业网络安全架构
临汾软件开发服务价格
a3 无法连接服务器
2018互联网科技环境
玉林规划设计院数据库主任
软件工程与网络安全的区别
荣耀开启查找设备无法连接服务器
中央电视台网络安全律师主任
无锡定制软件开发报价
备份管理服务器组成
软件开发支持ie
云服务器加载
党员如何把关好网络安全观
网页服务器连接失败是什么原因
网络技术常用app
高清的网络安全知识
毕业设计软件开发文档
列举生活中网络安全问题
一个绑定数据库的C UI
传统的数据库有前途嘛
截瘫视频软件开发
()属于目前流行的数据库
层次数据库模型特点
黑客修改数据库密码破解
云服务器加载
绝地求生在哪里换服务器2020
网络技术基础知识视频教学
优友动量网络技术有限公司
动车组网络技术复习考点