iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux shell自定义函数方法有哪些
  • 131
分享到

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

2023-06-09 19:06:27 131人浏览 独家记忆
摘要

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

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

--结束END--

本文标题: linux shell自定义函数方法有哪些

本文链接: https://www.lsjlt.com/news/257357.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • linux shell自定义函数方法有哪些
    本篇内容介绍了“linux shell自定义函数方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、定义shell函数(define...
    99+
    2023-06-09
  • php自定义函数的方法有哪些
    在PHP中,可以使用以下方法来定义自定义函数:1. 使用function关键字定义函数,例如:```phpfunction func...
    99+
    2023-08-16
    php
  • linux中shell如何自定义函数
    小编给大家分享一下linux中shell如何自定义函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、定义shell函数(define function)语法:...
    99+
    2023-06-09
  • JavaScript中定义函数的方法有哪些
    小编给大家分享一下JavaScript中定义函数的方法有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!有3种方法:1、function关键字,语法“function 函数名(参数列表){//声明}”;2、用函数表达式形...
    99+
    2023-06-14
  • hive常见自定义函数有哪些
    这篇文章主要介绍了hive常见自定义函数有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.1 为什么需要自定义函数hive的内置函数满足不了所有的业务需求。hive提供...
    99+
    2023-06-02
  • 自定义Hook的方法有哪些
    这篇文章主要介绍“自定义Hook的方法有哪些”,在日常操作中,相信很多人在自定义Hook的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”自定义Hook的方法有哪些”...
    99+
    2024-04-02
  • Linux中自定义Cinnamon桌面的方法有哪些
    今天小编给大家分享一下Linux中自定义Cinnamon桌面的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Cin...
    99+
    2023-06-27
  • js函数定义方式有哪些
    这篇文章主要为大家展示了“js函数定义方式有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js函数定义方式有哪些”这篇文章吧。在Javascript定义一个...
    99+
    2024-04-02
  • python自定义函数的特点有哪些
    Python自定义函数的特点有以下几个: 可重用性:自定义函数可以在程序的任何地方被调用和使用,提高了代码的复用性,避免了重复编...
    99+
    2024-02-29
    python
  • shell中怎么自定义函数
    shell中怎么自定义函数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、定义函数代码如下:function fname(){statements;}或代码如...
    99+
    2023-06-09
  • vue自定义指令的方法有哪些
    在vue中自定义指令的方法有:语法:Vue.directive(id, definition);1.自定义全局指令;2.自定义私有指令;在vue中自定义指令的方法有以下两种vue自定义指令语法:Vue.directive(id, ...
    99+
    2024-04-02
  • android中自定义view的方法有哪些
    在Android中,可以通过以下几种方式来自定义View:1. 继承View类:创建一个继承自View类的子类,并实现相应的绘制方法...
    99+
    2023-10-18
    android
  • 如何在shell中自定义函数
    这篇文章给大家介绍如何在shell中自定义函数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一,调用函数必须在定义函数的后,不然会报错的funfun (){ echo "aaaa...
    99+
    2023-06-09
  • PHP中自定义排序的方法有哪些
    在PHP中,可以使用以下方法来定义自定义排序: 使用usort()函数:usort()函数用于对数组进行排序,可以自定义排序规则。...
    99+
    2024-04-02
  • asp定义数组的方法有哪些
    ASP中定义数组的方法有以下几种:1. 使用Array关键字:可以使用Array关键字来声明一个数组变量,并使用赋值语句为数组分配内...
    99+
    2023-09-21
    asp
  • java定义数组的方法有哪些
    在Java中,定义数组有以下几种方法: 使用数组直接量初始化数组: int[] arr = {1, 2, 3, 4, 5}; ...
    99+
    2024-03-11
    java
  • android自定义消息弹窗的方法有哪些
    Android中自定义消息弹窗的方法有以下几种:1. 使用AlertDialog:通过创建一个AlertDialog对象,并设置自定...
    99+
    2023-08-16
    android
  • javascript中定义数组的方法有哪些
    这篇文章给大家分享的是有关javascript中定义数组的方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。javascript中定义数组的方法:1、使用“var 数组名=...
    99+
    2024-04-02
  • python定义空数组的方法有哪些
    在Python中,有以下几种方法定义空数组:1. 使用`[]`定义空数组:`arr = []`2. 使用`list()`函数定义空数...
    99+
    2023-09-04
    python
  • java定义空数组的方法有哪些
    在Java中,有以下几种方法可以定义一个空数组:1. 使用new关键字初始化一个空数组:```int[] array = new i...
    99+
    2023-08-18
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作