函数定义

语法

  1. [function] 函数名(){ #function可有可无
  2. 函数执行体
  3. [return *] #返回值可有可无,如果没有return语句,则将最后一句执行体作为结果返回
  4. }

示例

function showCode(){ #定义一个函数showCode
    echo "No BB"
}

函数调用

无返回值

#!/bin/bash

function showCode(){ #定义一个函数showCode
    echo "No BB"
} 

echo "我准备调用函数showCode了...."
showCode
echo "我调用showCode完成"

#输出
我准备调用函数showCode了....
No BB
我调用showCode完成

有返回值

#!/bin/bash

function showCode(){ #定义一个函数showCode
    echo "No BB"
     return 0
} 

echo "我准备调用函数showCode了...."
showCode
echo "我要输出showCode的返回值:$?"
echo "我调用showCode完成"

#输出
我准备调用函数showCode了....
No BB
我要输出showCode的返回值:0
我调用showCode完成

函数传参

shell函数允许传参,函数内部以$n的形式获取参数值,其中n为参数序号,如$1代表第一个参数

语法

函数名 参数1 参数2 参数3 。。。参数n

示例

#!/bin/bash

function showCode(){ #定义一个函数showCode
    echo "第一个参数:$1"
} 

echo "我准备调用函数showCode了...."
showCode "哈哈哈"
echo "我调用showCode完成"

#输出
我准备调用函数showCode了....
哈哈哈
我调用showCode完成

shell中还有一些比较特殊的变量用于处理函数,如:

  • $# 可获取参数长度
  • $* 可获取所有参数组成的字符串
  • $? 可获取函数最后执行的结果,也就是返回值