Shell编程及常用命令(五)-- shell函数

本文深入讲解了Shell函数的定义、调用及参数传递方法。包括函数的格式定义、如何使用及返回值的获取,同时详细解释了如何在函数中处理参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

九、Shell函数

1、函数定义格式

[ function ] function_name [()]
{
    action;
    [return int;]
}
  • [ function ]修饰符为可选项,可不要
  • [ () ]表明函数可不带任何参数,直接定义为function_name()
  • 返回值可显示添加return,如不加,将以最后一条命令运行结果,作为返回值

 2.函数调用

  • 无参数时:直接用function_name调用
  • 有参数时:调用function_name var1 var2 var3 ...... varn函数名和参数之间以及各参数之间用空格隔开
  • 函数必须先定义再使用
  • 函数返回值在调用该函数后通过 $? 来获得
#!/bin/bash
# example 1: no return value, no parameter
# define function
demoFun(){
    echo "this is first shell function!"
}
# run function
demoFun

#example 2: has return value and parameter
funWithReturn(){
    echo "this function will get the sum of the two number"
    echo "please input the first number:"
    read fstNum
    echo "please input the second number"
    read sndNum
    echo "two number are: $fstNum and $sndNum"
    return $(($fstNum+$sndNum))
}
# run function
funWithReturn
echo "sum of these number is : $?"
#函数返回值在调用该函数后通过 $? 来获得

3、函数参数

  • Shell中,调用函数时可以向其传递参数,形式为function_name v1 v2 v3 ...... vn
  • 在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...  ,当n>=10时,需要使用${n}来获取参数
#!/bin/bash
funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !" #无法正确获取到第十个参数34
    echo "第十个参数为 ${10} !" #正确获取第十个参数34
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73
  • $? 仅对其上一条指令负责,一旦函数返回后其返回值没有立即保存入参数,那么其返回值将不再能通过 $? 获得
  • 函数与命令的执行结果可以作为条件语句使用,shell 语言中 0 代表 true,0 以外的值代表 false。
  • 其它常用特殊字符解释参照(二)6.2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

auspark

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值