当前位置: 首页 > 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
http://www.xdnf.cn/news/720991.html

相关文章:

  • 【Linux 基础知识系列】第一篇-Linux 简介与历史
  • 每天掌握一个Linux命令 - pidstat
  • 《仿盒马》app开发技术分享-- 订单详情页(端云一体)
  • 【数据集】中国江北气候区100m逐日近地表气温数据(Python实现代码解析)
  • 【计网】静态路由分配
  • c#跨平台桌面地图-mapsui
  • The 2020 ICPC Asia Yinchuan Regional Programming Contest
  • 跨越太赫兹鸿沟:高通量实时成像的曙光?
  • DataAgent产品经理(数据智能方向)
  • Python 之图片添加时间戳水印
  • 【博客系统】博客系统第十一弹:从 0 到 1 搭建 Java 部署环境并部署 web 项目到 linux 系统
  • 【笔记】2025 年 Windows 系统下 abu 量化交易库部署与适配指南
  • 2023年12月GESPC++二级真题解析(含视频)
  • 2023年6月第三套第二篇
  • 什么是生成式人工智能?
  • 【决策分析】基于Excel的多变量敏感性分析解决方案
  • 9.5 Q1 | 北京协和医学院GBD发文 | 1990-2021 年全球、区域和国家心力衰竭负担及其根本原因
  • 运筹说 第137期 | 对策论精品案例
  • 重塑企业:迈向人类、智能体与下一代组织模式
  • LeetCode 75. 颜色分类 - 双指针法高效解决(Java实现)
  • unity星空运动
  • ZeroSearch: 无需搜索即可激发LLM的搜索能力
  • Ollama v0.8.0 发布,支持通过工具调用进行流式响应!
  • Powerbuilder 连接达梦数据库(ODBC 和 JDBC)
  • [ Qt ] | Qlabel使用
  • 软考-系统架构设计师-第十章 系统质量属性和架构评估
  • 2025-05-29 学习记录--Python-面向对象
  • Pinia Plungin Persistedstate
  • Shell 脚本基础笔记
  • Java 中的 synchronized 和 Lock:如何保证线程安全