我的编程空间,编程开发者的网络收藏夹
学习永远不晚

详解shell 函数定义与调用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

详解shell 函数定义与调用

一、Shell函数定义格式

shell函数定义格式,各部分说明如下:

[ function ]等中括号括起来部分----表示可选(即可有可无)

your_function_name部分----为函数名

your_shell_commands部分----为函数代码;shell一般以行为单位,但可以使用“\”换行,也可以在单行内使用“;”作为分隔符

return int部分----shell函数可以有返回值,但只能返回整数不能返回字符串


[ function ] your_function_name()
{
  your_shell_commands;
  [return int;]
}

二、基本函数定义与调用

本节程序实现函数定义与调用,注意调用函数是不要使用括号(即如testFun()是不对的),代码如下:


testFun{
  echo "helloworld!"
}

testFun

运行如下:

详解shell 函数定义与调用

三、传递参数调用

3.1 传递参数没有空格

本节程序实现向被调用函数传递参数,$0是运行该脚本的shell传递的参数从$1开始、传递多个参数是以空格分隔,代码如下:


testFun(){
  echo $1
}

param="helloworld!"
testFun $param

运行如下:

详解shell 函数定义与调用

除了可以通过$n形式获取第n个参数外,还可以使用以下几个写法:

形式 说明
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

3.2 传递参数有空格

本节程序实现向被调用函数传递有空格的参数,我们将上节“helloworld!”加个空格变为“hello world!”如下:


testFun(){
  echo $1
}

param="hello world!"
testFun $param

运行如下:

详解shell 函数定义与调用

可以看到只有空格前的“hello”被打印了出来,空格后的“world!”并没被打印出来(实际上空格后的"world!"被识别成了$2)

要传递有空格的参数也简单,在传递时加上双引号即可(单引号就不被认为是变量了所以不能用单引号),代码如下:


testFun(){
  echo $1
}

param="hello world!"
testFun "$param"

运行如下:

详解shell 函数定义与调用

四、获取返回值

4.1 返回整型


testFun(){
  echo "helloworld!"
  return 99
}


# 千万要注意shell并不像其他语言直接返回返回值,其返回值放到$?中,这也是为什么只能返回整型的原因
# 所以这种承接方法是错误的,获取到的值是echo打印的内容
# return_value=`testFun`
# 以下才是正确获取通过return返回的返回值的正确写法
testFun
echo "the return value is: $?"

4.2 返回字符串

我们在前面一直说shell函数只能返回整型不能返回字符串,我们试一下强行返回字符串,代码如下:


testFun(){
  echo "helloworld!"
  return "success"
}

testFun

运行如下,可以看到运行到return处报错“-bash: return: success: numeric argument required”

详解shell 函数定义与调用

所以要通过return返回字符串是没戏的,我们有两个变通的方法,第一种是通过$()获取函数的所有打印,代码如下:


testFun(){
  echo "helloworld!"
  echo "success"
}

return_value=$(testFun)
echo "$return_value"

运行如下:

详解shell 函数定义与调用

可以看到成功获取到了‘success“。但同时也可以看到这种做法获取到的被调用函数的所有输出,单要返回值到得单独解析一下

另外的一种做法是直接用一个变量,shell的变量都是全局的在被调用函数中赋值的变量在调用函数处也可获取,代码如下:


testFun(){
  echo "helloworld!"
  return_value="success"
}

testFun
echo $return_value

运行如下:

详解shell 函数定义与调用

参考:

http://edu.jb51.net/linux/linux-shell-passing-arguments.html

以上就是详解shell 函数定义与调用的详细内容,更多关于Shell 函数定义与调用的资料请关注我们其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

详解shell 函数定义与调用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

详解shell 函数定义与调用

一、Shell函数定义格式 shell函数定义格式,各部分说明如下: [ function ]等中括号括起来部分----表示可选(即可有可无) your_function_name部分----为函数名 your_shell_commands
2022-06-04

Golang函数定义与调用规则详解

函数定义规则:函数名、参数列表、返回值类型明确函数调用:函数名+实参列表,实参顺序和类型对应实战案例:计算两个数之和求一个数的阶乘参数传递:值传递,函数内修改参数值不影响函数外值可变参数放在参数列表最后,使用 ... 表示Golang 函数
Golang函数定义与调用规则详解
2024-04-16

怎么在shell中定义与调用函数

怎么在shell中定义与调用函数?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、Shell函数定义格式shell函数定义格式,各部分说明如下:[ functi
2023-06-09

shell自定义函数及参数调用解析

一、定义函数function fname(){statements;} 或 fname(){statements;}二、调用函数 只需要使用函数名,即可调用某个函数:$ fname ; #执行函数 可以传递参数给函数,并由脚本进行访问:fn
2022-06-04

shell函数定义与调用的方法是什么

在Shell中,可以使用以下方法来定义和调用函数:1. 定义函数:```function_name() {# 函数体# 可以在函数体内部使用参数 $1, $2, ... 来引用传递的参数}```或者```function function_
2023-09-22

Shell之function函数的定义及调用示例

目录function函数的定义及调用function函数的定义 function函数的调用【位置传参】函数使用return返回值【位置传参】函数的调用【数组传参】function函数的定义及调用 将一些相对独立的代码变成函数,可以提高程序的
2022-08-08

实例讲解Python中函数的调用与定义

调用函数:#!/usr/bin/env python3 # -*- coding: utf-8 -*- # 函数调用 >>> abs(100) 100 >>> abs(-110) 110 >>> abs(12.34) 12.3
2022-06-04

Scala方法与函数使用和定义详解

这个章节会很烧脑,需要认真研读,我会尽量写的详细一些。方法和函数,看似是两个概念,其实他严格来说也是两个概念,但我们大可以理解成是同一个概念,在使用时只有语法上的细微差别,是很类似的,都理解为function即可
2022-12-14

C++ 成员函数详解:对象方法的定义与调用机制

成员函数是定义在类中的函数,用于操作类数据和执行任务。其定义语法为:定义成员函数:return_type class_name::function_name(parameters)调用成员函数:object.function_name(pa
C++ 成员函数详解:对象方法的定义与调用机制
2024-04-29

VB中的函数怎么定义与调用

在VB中,函数可以使用Function关键字来定义。函数的语法如下:Function functionName(parameters) As returnType' 函数的逻辑代码functionName = returnVal
VB中的函数怎么定义与调用
2024-04-03

Python 函数调用&定义函数&函数参

一.函数调用在python中内置了很多函数,我们可以直接调用 。想要调用函数首先要知道函数的名称及包含的参数,还可以通过查看python官方的文档:https://docs.python.org/3/library/functions.ht
2023-01-30

PHP学习笔记:函数的定义与调用

在PHP中,函数是一段可以重复使用的代码块。函数能够提高代码的可读性和重用性,使代码更加模块化。本文将介绍如何定义和调用PHP函数,并给出具体的代码示例。一、函数的定义在PHP中,函数的定义使用关键字function。函数定义的一般语法如下
2023-10-21

JavaScript函数防抖与函数节流的定义及使用详解

这篇文章主要为大家详细介绍一下JavaScript中函数防抖与函数节流的定义及使用,文中的示例代码讲解详细,对我们学习JS有一定帮助,需要的可以参考一下
2022-11-13

如何理解Shell中的函数、函数定义、作用域

本篇内容主要讲解“如何理解Shell中的函数、函数定义、作用域”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Shell中的函数、函数定义、作用域”吧!一、Shell中函数的定义为了方便程
2023-06-09

编程热搜

目录