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

linux shell自定义函数方法有哪些

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

linux shell自定义函数方法有哪些

本篇内容介绍了“linux shell自定义函数方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、定义shell函数(define function)

语法:

[ function ] funname [()]
{
action;
[return int;]
}

说明:

可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255

实例(testfun1.sh):

#!/bin/sh    fSum 3 2;  function fSum()  {    echo $1,$2;    return $(($1+$2));  }  fSum 5 7;  total=$(fSum 3 2);  echo $total,$?;           sh testfun1.sh testfun1.sh: line 3: fSum: command not found 5,7 3,2

从上面这个例子我们可以得到几点结论:

必须在调用函数地方之前,声明函数,shell脚本是逐行运行。不会像其它语言一样先预编译。一次必须在使用函数前先声明函数。

total=$(fSum 3 2); 通过这种调用方法,我们清楚知道,在shell 中 单括号里面,可以是:命令语句。 因此,我们可以将shell中函数,看作是定义一个新的命令,它是命令,因此 各个输入参数直接用 空格分隔。 一次,命令里面获得参数方法可以通过:$0…$n得到。 $0代表函数本身。

函数返回值,只能通过$? 系统变量获得,直接通过=,获得是空值。其实,我们按照上面一条理解,知道函数是一个命令,在shell获得命令返回值,都需要通过$?获得。

二、函数作用域,变量作用范围

先我们看一个实例(testfun2.sh ):

#!/bin/sh  echo $(uname); declare num=1000;  uname() {   echo "test!";   ((num++));   return 100; } testvar() {   local num=10;   ((num++));   echo $num;  }  uname; echo $? echo $num; testvar; echo $num;                          sh testfun2.sh Linux test! 100 1001 11 1001

我们一起来分析下上面这个实例,可以得到如下结论:

定义函数可以与系统命令相同,说明shell搜索命令时候,首先会在当前的shell文件定义好的地方查找,找到直接执行。
2、需要获得函数值:通过$?获得
3、如果需要传出其它类型函数值,可以在函数调用之前,定义变量(这个就是全局变量)。在函数内部就可以直接修改,然后在执行函数就可以读出修改过的值。
4、如果需要定义自己变量,可以在函数中定义:local 变量=值 ,这时变量就是内部变量,它的修改,不会影响函数外部相同变量的值 。

这些,是我在工作中,对linux ,shell 函数使用一些经验总结,有没有提到地方,欢迎交流!

以下是其它网友的补充:

本教程目前为止所有脚本都是从头到尾执行。这样做很好,但你也许已经注意到有些脚本段间互相重复。

shell允许将一组命令集或语句形成一个可用块,这些块称为shell函数。

shell中函数的定义格式如下:

函数名(){
command1
command2
...
commandN
[ return value ]
}

如果愿意,可在函数名前加上关键字function,这取决于使用者。
function 函数名(){
command1
command2
...
commandN
[ return value ]
}

函数返回值,可以显示增加return语句;如果不加,则将最后一条命令运行结果作为返回值(一般为0,如果执行失败则返回错误代码)。 return后跟数值(0-255)。

函数可以放在同一个文件中作为一段代码,也可以放在只包含函数的单独文件中。函数不必包含很多语句或命令,甚至可以只包含一个echo语句,这取决于使用者。

下面的例子定义了一个函数并进行调用:

#!/bin/bashdemoFun(){echo "This is your first shell function!"}echo "Function begin..."helloecho "Function end!"输出:Function begin...This is your first shell function!Function end!

下面定义一个带有return语句的函数:

#!/bin/bashfunWithReturn(){echo "The function is to get the sum of two numbers..."echo -n "Input first number: "read aNumecho -n "Input another number: "read anotherNumecho "The two numbers are $aNum and $anotherNum !"return $(($aNum+$anotherNum))}funWithReturnecho "The sum of two numbers is $? !"输出类似下面:The function is to get the sum of two numbers...Input first number: 25Input another number: 50The two numbers are 25 and 50 !The sum of two numbers is 75 !

函数返回值在调用该函数后通过 $? 来获得。

注意:所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用。调用函数仅使用其函数名即可。

“linux shell自定义函数方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

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

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

linux shell自定义函数方法有哪些

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

下载Word文档

猜你喜欢

linux shell自定义函数方法有哪些

本篇内容介绍了“linux shell自定义函数方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、定义shell函数(define
2023-06-09

php自定义函数的方法有哪些

在PHP中,可以使用以下方法来定义自定义函数:1. 使用function关键字定义函数,例如:```phpfunction functionName() {// 函数体}```2. 使用匿名函数(闭包)定义函数,例如:```php$func
2023-08-16

linux shell 自定义函数方法(定义、返回值、变量作用域)

一、定义shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 1、可以带function fun() 定义,也可以直
2022-06-04

linux中shell如何自定义函数

小编给大家分享一下linux中shell如何自定义函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、定义shell函数(define function)语法:
2023-06-09

JavaScript中定义函数的方法有哪些

小编给大家分享一下JavaScript中定义函数的方法有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!有3种方法:1、function关键字,语法“function 函数名(参数列表){//声明}”;2、用函数表达式形
2023-06-14

hive常见自定义函数有哪些

这篇文章主要介绍了hive常见自定义函数有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.1 为什么需要自定义函数hive的内置函数满足不了所有的业务需求。hive提供
2023-06-02

Linux中自定义Cinnamon桌面的方法有哪些

今天小编给大家分享一下Linux中自定义Cinnamon桌面的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Cin
2023-06-27

python自定义函数的特点有哪些

Python自定义函数的特点有以下几个:可重用性:自定义函数可以在程序的任何地方被调用和使用,提高了代码的复用性,避免了重复编写相同功能的代码。可扩展性:通过自定义函数,可以将复杂的代码逻辑封装在函数内部,使得程序结构更加清晰,便于维护和扩
python自定义函数的特点有哪些
2024-02-29

android中自定义view的方法有哪些

在Android中,可以通过以下几种方式来自定义View:1. 继承View类:创建一个继承自View类的子类,并实现相应的绘制方法,例如onDraw()方法,来实现自定义的绘制效果。2. 继承ViewGroup类:创建一个继承自ViewG
2023-10-18

linux shell自定义函数(定义、返回值、变量作用域)介绍

一、定义shell函数(define function) 语法:[ function ] funname [()] { action; [return int;] } 说明: 1、可以带function fun() 定义,
2022-06-04

asp定义数组的方法有哪些

ASP中定义数组的方法有以下几种:1. 使用Array关键字:可以使用Array关键字来声明一个数组变量,并使用赋值语句为数组分配内存空间。例如:```Dim arrarr = Array(1, 2, 3, 4, 5)```2. 使用Dim
2023-09-21

java定义数组的方法有哪些

在Java中,定义数组有以下几种方法:使用数组直接量初始化数组:int[] arr = {1, 2, 3, 4, 5};使用new关键字创建数组并初始化:int[] arr = new int[5];arr[0] = 1;arr[1]
java定义数组的方法有哪些
2024-03-11

android自定义消息弹窗的方法有哪些

Android中自定义消息弹窗的方法有以下几种:1. 使用AlertDialog:通过创建一个AlertDialog对象,并设置自定义的布局和样式来实现自定义消息弹窗。2. 自定义Dialog:通过创建一个继承自Dialog的自定义对话框类
2023-08-16

python定义空数组的方法有哪些

在Python中,有以下几种方法定义空数组:1. 使用`[]`定义空数组:`arr = []`2. 使用`list()`函数定义空数组:`arr = list()`3. 使用`array.array()`函数定义空数组:`import ar
2023-09-04

java定义空数组的方法有哪些

在Java中,有以下几种方法可以定义一个空数组:1. 使用new关键字初始化一个空数组:```int[] array = new int[0];```2. 使用静态方法Arrays.copyOf()创建一个空数组:```int[] arra
2023-08-18

编程热搜

目录