首页 > 其他分享 >第十二天:函数 function

第十二天:函数 function

时间:2024-01-22 22:13:29浏览次数:25  
标签:function ... shell 第十二天 函数 定义 变量 name

一、函数介绍

函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程 它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部 分 函数和shell程序区别 Shell程序在子Shell中运行 函数在当前Shell中运行。因此在当前Shell中,函数可对shell中变量进行修改

二、管理函数

1、定义

#语法一: func_name (){ ...函数体... } #语法二: function func_name { ...函数体... } #语法三: function func_name () { ...函数体... }

2、查看函数

#查看当前已定义的函数名   declare -F #查看当前已定义的函数定义   declare -f #查看指定当前已定义的函数名   declare -f func_name #查看当前已定义的函数名定义   declare -F func_name 3、删除函数    unset func_name 4、函数调用 函数的调用方式,可在交互式环境下定义函数 可将函数放在脚本文件中作为它的一部分 可放在只包含函数的单独文件中 调用:函数只有被调用才会执行,通过给定函数名调用函数,函数名出现的地方,会被自动替换为函数 代码 函数的生命周期:被调用时创建,返回时终止   三、函数的返回值 函数的执行结果返回值:   使用echo等命令进行输出   函数体中调用命令的输出结果 函数的退出状态码:   默认取决于函数中执行的最后一条命令的退出状态码 自定义退出状态码,其格式为:   return 从函数中返回,用最后状态命令决定返回值   return 0 无错误返回   return 1-255 有错误返回   四、环境函数 类拟于环境变量,也可以定义环境函数,使子进程也可使用父进程定义的函数 定义环境函数:   export -f function_name   declare -xf function_name 查看环境函数:   export -f   declare -xf   五、函数参数 函数可以接受参数: 传递参数给函数:在函数名后面以空白分隔给定参数列表即可,如:testfunc arg1 arg2 ... 在函数体中当中,可使用$1, $2, ...调用这些参数;还可以使用$@, $*, $#等特殊变量   六、函数变量 变量作用域: 普通变量:只在当前shell进程有效,为执行脚本会启动专用子shell进程;因此,本地变量的作用 范围是当前shell脚本程序文件,包括脚本中的函数 环境变量:当前shell和子shell有效 本地变量:函数的生命周期;函数结束时变量被自动销毁 注意: 如果函数中定义了普通变量,且名称和局部变量相同,则使用本地变量 由于普通变量和局部变量会冲突,建议在函数中只使用本地变量 在函数中定义本地变量的方法 local NAME=VALUE   七、函数递归 函数递归:函数直接或间接调用自身,注意递归层数,可能会陷入死循环 递归特点: 函数内部自已调用自已 必须有结束函数的出口语句,防止死循环

标签:function,...,shell,第十二天,函数,定义,变量,name
From: https://www.cnblogs.com/dujy/p/17964087

相关文章

  • [office] excel排名函数使用教程
    Excel中经常需要使用到排名函数对数据表进行排名,排名函数具体该如何使用呢?下面是小编带来的关于excel排名函数使用教程,希望阅读过后对你有所启发!excel排名函数使用教程:排名函数使用步骤1:不管在学校还是各个统计领域,排名应用随处可见,如果排序会打乱原有次序,那么好多朋......
  • 【C++入门到精通】C++入门 —— 类和对象(拷贝构造函数、赋值运算符重载、const成员函
    编辑一、前言二、拷贝构造函数⭕拷贝构造函数概念⭕拷贝构造函数的特点⭕拷贝构造函数的几种类型三、赋值运算符重载⭕运算符重载概念⭕赋值运算符重载⭕前置++和后置++重载四、const成员函数⭕const成员函数概念⭕常量成员函数需要满足的特点⭕常量成员函数有利条件⭕const常量的......
  • 【C++进阶】function和bind及可变模板参数
     文章目录1.function和bind1.1function使用方法1.2bind2.可变模板参数2.1可变模板参数函数2.2可变模板参数的展开 1.function和bindC++中的function和bind是为了更方便地进行函数对象的封装和调用而设计的。function是一个通用的函数对象容器......
  • GDB调试之直接调用函数 (十九)
    常用命令:p表达式:求表达式的值并显示结果值。表达式可以包括对正在调试的程序中的函数的调用,即使函数返回值是void,也会显示。call表达式:求表达式的值并显示结果值,如果是函数调用,返回值是void的话,不显示void返回值。调试代码如下:#include<iostream>#include<cstring>usin......
  • C++内联函数
    什么是内联函数以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。为什么存在内联函数我们知道,普通的函数需要建立栈帧空间因此,可以利用宏来定义一些小的函数(行数较少的)这样,函数调用的时候......
  • 请求函数封装promise请求函数
    借鉴aioxs请求函数-》返回promise对象请求分为:成功 失败 进行完一系列操作后在微信开发者平台测试的时候,如果有数据更新一定要重新编译刷新一下,代码:/*请求函数@paramUniApp.Requestoptions@returnsPromise1.返回Promise对象2.请求成功2.1提取核心数据res.data......
  • string 函数
    在C++中,string类型是处理字符串的一种方便的方式,它包含了许多有用的成员函数来进行字符串操作。以下是一些常用的string函数的示例说明:构造函数和赋值:创建空字符串:stringstr;使用字符串常量初始化:stringstr="Hello";使用字符数组初始化:charcharArray[]="World";......
  • SQL—排序专用窗口函数
    下面介绍三种用于进行排序的专用窗口函数:1、RANK()   在计算排序时,若存在相同位次,会跳过之后的位次。   例如,有3条排在第1位时,排序为:1,1,1,4······2、DENSE_RANK()   这就是题目中所用到的函数,在计算排序时,若存在相同位次,不会跳过之后的位次。   例如,有3......
  • numba cannot be imported and numba functions are disabled. Probably the executio
    问题描述运行代码会出现警告信息numbacannotbeimportedandnumbafunctionsaredisabled.Probablytheexecutionisslow.Pleaseinstallnumbatogainamassivespeedup.(orifyoupreferslowexecution,settheflagnumba=Falsetoavoidthiswarning!)即使......
  • lightdb 支持无参函数无括号使用
    背景在Oracle中,用户自定义的无参函数可以不带括号执行。为支持该特性,LightDB24.1版本中,允许用户使用无参函数的函数名调用函数,包括系统函数,如:now.用例createfunctionfn_noparam()RETURNSintlanguagesqlas$$select1;$$;--=1,simpleexprselectfn_noparam......