zoukankan      html  css  js  c++  java
  • [Shell] 函数的应用

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

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

    说明:

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

    举例说明:

    不带参数的函数:

    demoFunc(){ #定义函数
            echo "这是第1个shell函数"
    }
    
    echo "-------函数开始执行------"
    demoFunc #执行函数
    echo "-------函数执行完毕------"

    执行效果:

    $ sh testfunc.sh 
    -------函数开始执行------
    这是第1个shell函数
    -------函数执行完毕------

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

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

    带多个返回值的函数:

    test(){
    echo 100 #返回100
    echo 200 #返回200
    }
    
    a=$(test)
    echo $a

    执行效果:

    sh testfunc.sh 
    100 200

     带参数的函数: 

    funWithParam(){
        echo "第一个参数为 $1 !"
        echo "第二个参数为 $2 !"
    }
    
    funWithParam 1 2

    执行效果:

    sh testfunc.sh
    第一个参数为 1 !
    第二个参数为 2 !

    注意,$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数。

    另外,还有几个特殊字符用来处理参数:

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

     

    参考文档:

    Shell 函数

    Shell函数返回多个值

  • 相关阅读:
    07noip 统计数字 解题报告
    07noip 矩阵取数游戏 解题报告
    10 noip 乌龟棋 解题报告
    10 noip 引水入城 解题报告
    让我们来看一看C++ 简短自序
    curl post请求封装
    array_merge与数组加
    composer设置autoload自己的代码
    mysql使用笔记
    android入门:zxing学习笔记(六)
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/12187897.html
Copyright © 2011-2022 走看看