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函数详解相关推荐

  1. 脚本——web_custom_request函数详解

    web_custom_request函数详解 在LR中当使用HTML录制方式时,录制的脚本中主要由函数web_link().web_submit_form().web_url().web_submit ...

  2. linux系统中shell脚本最全详解二shell条件判断语法介绍函数分析

    目录 一.shell判断句 1.if条件判断语句 2.test判断 二.语法介绍 1.shell运算符 2.shell循环语句 三.shell函数 一.shell判断句 1.if条件判断语句 if语法 ...

  3. shell脚本getopt使用详解

    1 getopt详解 1.1 getopt --help 用法: getopt optstring parameters getopt [options] [--] optstring paramet ...

  4. 【shell附加课】shell脚本调试方案详解

    文章目录 前言 一. shell脚本开发规范 二. shell脚本调试技巧 1. 使用echo +exit 命令断点调试 2. 使用bash命令参数调优 3. 使用 set 来调试脚本 总结 前言 最 ...

  5. Shell脚本书写方法详解

    同学给我推荐了一个关于如何书写shell脚本教程文件. 看过之后觉得受益良多,自己特意将该PDF内的内容自己总结了一份,在这里和大家分享一下. 愿所有像我一样的shell脚本的初学者能够从中受益,少走 ...

  6. shell脚本——awk命令详解

    每日分享: 也许你错过了今天的落日,但你可以去追逐下一个黎明! 文章目录 一.awk 1.工作原理 2.格式 3.常见的内建变量 二.awk命令使用--根据行输出内容 输出所有内容 输出指定行的内容 ...

  7. 【shell】shell脚本实战-shell脚本函数详解

    文章目录 前言 shell函数的定义 函数的优势 shell 函数的调用 实战案例 总结 前言 Shell 函数的本质是一段可以重复使用的脚本代码,这段代码被提前编写好了,放在了指定的位置,使用时直接 ...

  8. linux shell命令行及脚本编程实例详解_超全整理!这些Shell编程必备知识你都掌握了吗?...

    正文最近很多粉丝咨询我,被问到了一些Shell编程的问题,看看大家能否答出来: 1.shell脚本千千万,不知道从哪入手 2.没经验缺方法,面试通不过.做事没头绪 3.野路子.没人教自动化,做了几年基 ...

  9. linux 脚本编写基本命令,Linux Shell命令行及脚本编程实例详解

    <Linux典藏大系:Linux Shell命令行及脚本编程实例详解>共15章,分为两篇.主要内容包括:Linux 及Linux Shell简介.初识Linux Shell.常用Shell ...

最新文章

  1. HDU 4888 Redraw Beautiful Drawings(网络流求矩阵的解)
  2. 21种mysql_Mysql中,21个写SQL的好习惯,可以看一下
  3. springSecurity源码分析-spring-security.xml文件配置
  4. python逐行写入csv_python将列表按行写入csv
  5. IIS安装2个SSL_顶级域名0元撸-免费注册2个腾讯云域名 免费SSL证书
  6. .container的应用
  7. 曾经我也是运营着两个淘宝店铺的小卖家
  8. 合理利用Java不可变对象,让你的代码更加优雅
  9. php curl修改ip,php中curl设置ip的方法
  10. linux 开放端口
  11. 模型预测控制的缺点_开发者说丨Apollo代码学习—模型预测控制(MPC)
  12. 使用Quartz实现定时任务
  13. AGX平台MCU升级过程分析2014.10.3
  14. 25日—你看蓝蓝的天
  15. Java使用comms-net jar包完成ftp文件上传进度的检测功能
  16. 如何识别Android渠道安装来源追踪?
  17. 使用STAR进行RNA-seq数据比对
  18. Java 添加Word文本水印、图片水印
  19. c语言编程入门教程+网易,人话讲编程·C语言入门:第一讲,Hello World
  20. 计算机专业怎样才能晋级正高级

热门文章

  1. JavaScript 胸罩尺寸计算器
  2. c语言怎么给c1赋值字母,C语言赋值运算符详解
  3. Ubuntu18.04安装OpenCV教程
  4. 3D EXPERIENCE平台上的十大常见问题 硕迪科技
  5. 深入剖析Kubernetes笔记:Kubernetes常见问题
  6. 列表用法:格式化商品列表、商品添加到购物车
  7. 蓝屏driver_php,Intel 存储控制器驱动版本引发的 Windows 蓝屏故障 0xC0000098
  8. C++ OJ习题练习(六)完善职工工资类Salary的设计
  9. 创客机器人比赛简讯_厦门思明区中小学机器人创客大赛圆满结束 300多名创客好手参与...
  10. aws s3 php host,php S3调用SDK示例 AmazonS3