Shell编程八-Shell 函数

Shell 函数
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。

shell中函数的定义格式如下:

[ function ] funname [()]

{
    action;

    [return int;]
}
说明:
1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255)

函数返回值在调用该函数后通过 $? 来获得。

注意:所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用。调用函数仅使用其函数名即可。

函数参数
在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...
注意,$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数。

实例:
#!/bin/bash
#--------------------------------------------
#name:practise26.sh
#author:wdh
#date:20181210
#--------------------------------------------

#普通函数
shellFunc()
{
    echo "C++ is the best language!"
}
echo "-----函数开始执行-----"
shellFunc
echo "-----函数执行完毕-----"
echo '---------------------------------------------------'

#带返回值的函数
withReurnValue()
{
    echo "加法运算:"
    echo "请输入第一个数:"
    read a
    echo "请输入第二个数:"
    read b
    echo "你输入的两个数依次是:$a,$b"

    return $(($a+$b))
}

echo "-----函数开始执行-----"
withReurnValue
echo "两个数字之和为:$?"
echo "-----函数执行完毕-----"
echo '---------------------------------------------------'

#带参函数
withParameters()
{
    echo "第一个参数为 $1"
    echo "第二个参数为 $2"
    echo "第十个参数为 $10"
    echo "第十个参数为 ${10}"
    echo "第十一个参数为 ${11}"
    echo "参数总数有 $# 个"
    echo "作为一个字符串输出所有参数 $*"
}

echo "-----函数开始执行-----"
withParameters 1 2 3 4 5 6 7 8 9 100 200 300
echo "-----函数执行完毕-----"
echo '---------------------------------------------------'


执行 ./practise26.sh
运行脚本,结果如下:

-----函数开始执行-----
C++ is the best language!
-----函数执行完毕-----
---------------------------------------------------
-----函数开始执行-----
加法运算:
请输入第一个数:
10
请输入第二个数:
20
你输入的两个数依次是:10,20
两个数字之和为:30
-----函数执行完毕-----
---------------------------------------------------
-----函数开始执行-----
第一个参数为 1
第二个参数为 2
第十个参数为 10     //error
第十个参数为 100    //ok
第十一个参数为 200
参数总数有 12 个
作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 100 200 300
-----函数执行完毕-----
---------------------------------------------------
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值