Linux学习笔记 - Shell 函数的使用

基本语法

复制代码
funname ()

{

    action;

    return int; # 参数返回,可以显示添加(返回n=(0-255)):如果不加,将以最后一条命令运行结果,作为返回值。 

}
复制代码

 

示例1:定义并调用无返回值的函数

复制代码
#!/bin/bash

a=1
b=2
c=`expr $a + $b`

demofunc(){
echo "a+b=${c}"        
}

demofunc

---

output:
a+b=3
复制代码

示例2: 定义并调用有返回值的函数

复制代码
#!/bin/bash

a=1
b=2


demofunc(){
c=`expr $a + $b`
return ${c}      
}

demofunc
echo "输入的两个数字之和为 $? !" #函数返回值在调用函数后,通过 $? 获取
复制代码

 

注:

1.所有函数在使用前必须先定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它之后,才可以使用。

2.调用函数仅使用其函数名即可。

 

关于函数参数的传递

我们可以在调用函数的时候给其传递参数,例如:

复制代码
#!/bin/bash

funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第二个参数为 $3 !"
    echo "第十个参数为 ${10} !" #从10开始,获取参数必须用 ${n} 的方式
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}

funWithParam 1 2 3 4 5 6 7 8 9 10 11


---

output:
第一个参数为 1 !
第二个参数为 2 !
第二个参数为 3 !
第十个参数为 10 !
第十一个参数为 11 !
参数总数有 11 个!
作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 10 11 !
复制代码

此外,还可以使用以下特殊字符用来处理参数:

参数处理说明
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
posted @   TonyZhang24  阅读(313)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示