shell脚本——shell函数详解
shell脚本——shell函数详解
- 一、shell函数
- 1、shell函数的概念
- 2、shell函数的格式
- (1)函数的定义
- (2)调用函数的方法
- 3、函数返回值
- 4、函数传参
- 5、函数变量的作用范围
- 6、递归——函数调用自己本身的函数
- (1)阶乘 10!
- (2)递归目录
- 7、创建库
一、shell函数
1、shell函数的概念
- 将命令序列按格式写在一起
- 可方便重复使用命令序列
2、shell函数的格式
(1)函数的定义
--------方法一--------
function 函数名
{命令序列
}-------方法二-------
函数名()
{命令序列
}
(2)调用函数的方法
函数名 [参数1] [参数2]
示例vim hanshu.sh
3、函数返回值
- return表示退出函数并返回一个退出值,脚本中可以使用$?变量显示该值
- 使用原则
- 1、函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码
- 2、退出状态码必须是0~255,超出时值将为除以256取余
4、函数传参
- 位置变量、预定义变量用的比较多
方法一
方法二
- 可直接在指定路径后添加数值
5、函数变量的作用范围
- 函数在shell脚本中仅在当前shell环境中有效
- shell脚本中变量默认全局有效
- 将变量限定在函数内部使用local命令
6、递归——函数调用自己本身的函数
(1)阶乘 10!
#!/bin/bash
fact(){if [ $1 -eq 1 ];thenecho 1elsetemp=$[ $1 - 1 ]local res=$(fact $temp)echo $[ $1 * $res ]fi
}
#####main####
read -p "请输入一个数字:" num
res=`fact $num`
echo $res[root@localhost ~]# vim digui.sh
[root@localhost ~]# chmod +x *
[root@localhost ~]# ./digui.sh
请输入一个数字:10
3628800
[root@localhost ~]# vim digui.sh
[root@localhost ~]#
(2)递归目录
#!/bin/bashfindfile(){for f in `ls $1` #范围为/var/log内所有文件doif [ -d "$1/$f" ] #判断是否为目录thenecho "目录:$2$f" #添加位置偏移findfile "$1/$f" " $2" #进行遍历elseecho "文件:$2$f" fidone
}
#为子目录加空格,位置偏移
findfile "/var/log" ""
7、创建库
[root@localhost ~]# vim ku.sh ##编辑库函数
[root@localhost ~]# vim test.sh #测试文件
[root@localhost ~]# ./test.sh #指定路径运行
shell脚本——shell函数详解相关推荐
- 脚本——web_custom_request函数详解
web_custom_request函数详解 在LR中当使用HTML录制方式时,录制的脚本中主要由函数web_link().web_submit_form().web_url().web_submit ...
- linux系统中shell脚本最全详解二shell条件判断语法介绍函数分析
目录 一.shell判断句 1.if条件判断语句 2.test判断 二.语法介绍 1.shell运算符 2.shell循环语句 三.shell函数 一.shell判断句 1.if条件判断语句 if语法 ...
- shell脚本getopt使用详解
1 getopt详解 1.1 getopt --help 用法: getopt optstring parameters getopt [options] [--] optstring paramet ...
- 【shell附加课】shell脚本调试方案详解
文章目录 前言 一. shell脚本开发规范 二. shell脚本调试技巧 1. 使用echo +exit 命令断点调试 2. 使用bash命令参数调优 3. 使用 set 来调试脚本 总结 前言 最 ...
- Shell脚本书写方法详解
同学给我推荐了一个关于如何书写shell脚本教程文件. 看过之后觉得受益良多,自己特意将该PDF内的内容自己总结了一份,在这里和大家分享一下. 愿所有像我一样的shell脚本的初学者能够从中受益,少走 ...
- shell脚本——awk命令详解
每日分享: 也许你错过了今天的落日,但你可以去追逐下一个黎明! 文章目录 一.awk 1.工作原理 2.格式 3.常见的内建变量 二.awk命令使用--根据行输出内容 输出所有内容 输出指定行的内容 ...
- 【shell】shell脚本实战-shell脚本函数详解
文章目录 前言 shell函数的定义 函数的优势 shell 函数的调用 实战案例 总结 前言 Shell 函数的本质是一段可以重复使用的脚本代码,这段代码被提前编写好了,放在了指定的位置,使用时直接 ...
- linux shell命令行及脚本编程实例详解_超全整理!这些Shell编程必备知识你都掌握了吗?...
正文最近很多粉丝咨询我,被问到了一些Shell编程的问题,看看大家能否答出来: 1.shell脚本千千万,不知道从哪入手 2.没经验缺方法,面试通不过.做事没头绪 3.野路子.没人教自动化,做了几年基 ...
- linux 脚本编写基本命令,Linux Shell命令行及脚本编程实例详解
<Linux典藏大系:Linux Shell命令行及脚本编程实例详解>共15章,分为两篇.主要内容包括:Linux 及Linux Shell简介.初识Linux Shell.常用Shell ...
最新文章
- HDU 4888 Redraw Beautiful Drawings(网络流求矩阵的解)
- 21种mysql_Mysql中,21个写SQL的好习惯,可以看一下
- springSecurity源码分析-spring-security.xml文件配置
- python逐行写入csv_python将列表按行写入csv
- IIS安装2个SSL_顶级域名0元撸-免费注册2个腾讯云域名 免费SSL证书
- .container的应用
- 曾经我也是运营着两个淘宝店铺的小卖家
- 合理利用Java不可变对象,让你的代码更加优雅
- php curl修改ip,php中curl设置ip的方法
- linux 开放端口
- 模型预测控制的缺点_开发者说丨Apollo代码学习—模型预测控制(MPC)
- 使用Quartz实现定时任务
- AGX平台MCU升级过程分析2014.10.3
- 25日—你看蓝蓝的天
- Java使用comms-net jar包完成ftp文件上传进度的检测功能
- 如何识别Android渠道安装来源追踪?
- 使用STAR进行RNA-seq数据比对
- Java 添加Word文本水印、图片水印
- c语言编程入门教程+网易,人话讲编程·C语言入门:第一讲,Hello World
- 计算机专业怎样才能晋级正高级
热门文章
- JavaScript 胸罩尺寸计算器
- c语言怎么给c1赋值字母,C语言赋值运算符详解
- Ubuntu18.04安装OpenCV教程
- 3D EXPERIENCE平台上的十大常见问题 硕迪科技
- 深入剖析Kubernetes笔记:Kubernetes常见问题
- 列表用法:格式化商品列表、商品添加到购物车
- 蓝屏driver_php,Intel 存储控制器驱动版本引发的 Windows 蓝屏故障 0xC0000098
- C++ OJ习题练习(六)完善职工工资类Salary的设计
- 创客机器人比赛简讯_厦门思明区中小学机器人创客大赛圆满结束 300多名创客好手参与...
- aws s3 php host,php S3调用SDK示例 AmazonS3