当前位置: 首页 > news >正文

shell脚本总结12:自定义函数

目录

  • 前言
  • 正文

前言

shell 是一种脚本语言。脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译)shell 既是应用程序 又是一种脚本语言(应用程序 解析 脚本语言)。

正文

这一节我们介绍shell中的自定义函数。

函数定义的格式:以下三种都可以

函数名() {命令
}function 函数名() {命令
}function 函数名 {命令
} 

假如我们现在有一个简答的需求:设计一个函数,计算两数字之和并输出,我们先看一个错误示例。

function get_sum() {
echo "$1$2"
return $(($1 + $2))
}
total=$(get_sum 3 5)
echo "$total"

输出结果:

3和5

结果并没有我们希望看到的8,为什么呢?

因为在Shell中,函数的返回值是通过return返回的状态码,而通过命令替换 ( . . . ) 捕获的是函数的标准输出。所以这里的 t o t a l 变量实际上会得到 e c h o 输出的“ 3 和 5 ”,而 r e t u r n 的值则被存储在 (...)捕获的是函数的标准输出。所以这里的total变量实际上会得到echo输出的“3和5”,而return的值则被存储在 (...)捕获的是函数的标准输出。所以这里的total变量实际上会得到echo输出的“35”,而return的值则被存储在?中,但不会被赋值给total。

下面示范正确的范例。

正确示例1:

function get_sum_new() {
echo "$1$2"
echo "$(($1 + $2))"
}total=$(get_sum_new 3 5)
echo "$total"

结果如下

3和5
8

正确示例2:

function get_sum1()
{s=$[ $1 + $2 ]echo "$s"
}
get_sum1 3 5

结果如下

8

正确示例3:

function get_sum2()
{s=$[ $1 + $2 ]return "$s"
}
get_sum2 3 5
echo "$?"

结果如下

8

相关文章:

  • Flutter GridView网格组件
  • SQL的查询优化
  • 太阳系运行模拟程序-html动画
  • 华为OD机试真题——找终点(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • Cmake编译glog成功并在QT中测试成功步骤
  • Attention Is All You Need论文阅读笔记
  • Flutter下的一点实践
  • 在Mathematica中求解带阻尼的波方程
  • 国内连接速度较快的常用 Yum 源及其具体配置方法
  • DMBOK对比知识点整理(4)
  • 重温经典算法——插入排序
  • 纤维组织效应偏斜如何影响您的高速设计
  • ST MCU CAN模块--TTCAN模式浅析
  • Windows10下搭建sftp服务器(附:详细搭建过程、CMD连接测试、连接失败问题分析解决等)
  • 【大模型MCP】MCP 深度解析:AI 时代的「USB-C」接口——原理、对比、实战代码与行业落地
  • 【HTML-15】HTML表单:构建交互式网页的基石
  • 防范DDoS攻击,服务器稳定性崩溃的根源与高效防御对策
  • 【Java】线程池的实现原理是怎样的?CPU密集型任务与IO密集型任务的区别?
  • MinVerse 3D触觉鼠标的技术原理与创新解析
  • 从零起步认知微内核操作系统(AGI)
  • 怎样做百度网站/网络推广网站公司
  • 自己做头像的网站漫画/营销说白了就是干什么的
  • 网站 mip/怎么自己做一个小程序
  • 网站选择语言怎么做/app拉新项目推广代理
  • 分局网站建设/百度推荐现在为什么不能用了
  • 开网店视频教程/沈阳百度seo