每种语言都有自己的函数,shell也不例外。支持函数,它可以将脚本程序划分成一个个相对独立的代码块,使代码的模块化,结构更加清晰,并有效地减少程序的代码量,提高代码的复用率。

函数格式
  function fun_name()
  {
  action;
  }
  

  或者

  fun_name()
  {
  action;
  }
  注:()中不能带参数
  参数都是直接以变量的形式写在函数中,传递参数的时候使用${参数},若果不加${},直接输入参数,则把参数当作字符串来处理,不会当作变量

结果

注:¥?用来接收FunSum的返回值

例:传递参数

结果

注:函数中的参数$后面是多少,则取值的时候就取传递的参数中第几个,当大于9时,函数中要获取参数需要像示例中获取第五个参数一样添加大括号{}

其他特殊字符用来处理参数
  $0:是脚本本身的名字
  $#:传递到脚本的参数个数
  $*:以一个单字符串显示所有向脚本传递的参数
  $$:脚本运行的当前进程ID号
  $!:后台运行的最后一个进程的ID号
  $@:与$*相同,但是使用时加引号,并在引号中返回每个参数
  $-:显示Shell使用的当前选项,与set命令功能相同
  $?:显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误

变量作用域
  在函数调用之前,定义变量,则定义的是全局变量,当执行函数的时候读取变量使用
  在函数中定义变量,local key=value,则为函数内部的变量,函数在执行的时候读取变量使用,但是该变量在函数外不生效

shell编程-函数(九)的更多相关文章

  1. Shell 编程 函数

    本篇主要写一些shell脚本函数的使用. 函数调用 #!/bin/bash sum(){ s=`expr 2 + 3` echo $s } sum [root@localhost ~]# vim su ...

  2. Linux之shell编程函数使用

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 原文和作者一起讨论:http://www.cnblogs.com/int ...

  3. 2.shell编程-函数的高级用法

    2.1.函数的定义和使用 函数基本使用 [root@VM_0_9_centos ~]# test() > {} -bash: syntax error near unexpected token ...

  4. 小鸟初学Shell编程(九)环境变量变量配置文件

    介绍 在上一篇使用完了环境变量,并且知道PATH环境变量概念,那么我们对命令的执行就有了一定深入的理解.那么PATH环境变量或其他环境变量是保存在哪呢?那么这篇文章主要介绍环境变量配置文件. 配置文件 ...

  5. centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课

    centos shell编程5  LANMP一键安装脚本 lamp  sed  lnmp  变量和字符串比较不能用-eq  cat > /usr/local/apache2/htdocs/ind ...

  6. shell编程中的 三种结构: 条件if/选择结构case/循环for/while/until等结构 和 函数的用法

    shell 函数的使用 (md中, 列表本身是有格式的, 他要产生缩进, 其次,列表项和列表项之间, 可以留有一个空行, 是合法的, 允许的) shell函数,就是 就相当于一个命令来看待和处理的, ...

  7. 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!

    http://blog.csdn.net/xiaominghimi/article/details/7603003 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...

  8. shell编程系列19--文本处理三剑客之awk中的字符串函数

    shell编程系列19--文本处理三剑客之awk中的字符串函数 字符串函数对照表(上) 函数名 解释 函数返回值 length(str) 计算字符串长度 整数长度值 index(str1,str2) ...

  9. shell编程系列6--shell中的函数

    shell编程系列6--shell中的函数 .函数介绍 linux shell中的函数和大多数编程语言中的函数一样 将相似的任务或者代码封装到函数中,供其他地方调用 语法格式 第一种格式 name() ...

随机推荐

  1. Chapter 4 Invitations——1

    In my dream it was very dark, and what dim light there was seemed to be radiating from Edward's skin ...

  2. 【整理】WDK 和 DDK异同

    WDK和DDK的作用 开发WINDOWS下的驱动程序,需要一个专门的开发包,如:开发JAVA程序,我们可能需要一个JDK,开发 WINDOWS应用程序,我们需要WINDOWS的SDK,现在开发WIND ...

  3. java ReentrantLock

    介绍 ReentrantLock称为重入锁,比内部锁synchonized拥有更强大的功能,它可中断.可定时.设置公平锁 [注]使用ReentrantLock时,一定要释放锁,一般释放放到finnal ...

  4. [转]Redis配置文件详解

    本文转自http://blog.csdn.net/neubuffer/article/details/17003909 redis是一款开源的.高性能的键-值存储(key-value store),和 ...

  5. 深入MySQL复制(二):基于GTID复制

    相比传统的MySQL复制,gtid复制无论是配置还是维护都要轻松的多.本文对gtid复制稍作介绍. MySQL基于GTID复制官方手册:https://dev.mysql.com/doc/refman ...

  6. JS_单个或多个文件上传_不支持单独修改

    A-From表单直接填写提交地址,不过干预: 1. 单文件上传 最简单的文件上传,是单文件上传,form标签中加入enctype="multipart/form-data",for ...

  7. [转]比特币测试链——Testnet介绍

    本文转自:https://blog.csdn.net/wkb342814892/article/details/80796398 testnet使用详解需求需要搭建一个简单的交易测试场景,用于生成可查 ...

  8. 数据库部分(MySql)_4

    约束 约束:给表的字段名添加限制条件; 非空约束(not null):添加非空约束后,字段值不能为null: 唯一约束(unique):添加唯一约束后,字段值不能重复: 主键约束(primary ke ...

  9. C#基础知识总结(二)

    摘要 第二篇主要讲:变量.连接符占位符等.转义字符.数据的计算.数据的转换.try-catch的简单熟悉.复合运算符和自加自减 一.变量 1.数据存储在内存中:内存叫做RAM,内存被分隔为一小格一小格 ...

  10. Jquery操作ul的一些操作笔记

    1.html标记 <ul id="attachText"> <li data-text="111"><a href="# ...