美文网首页我用 LinuxLinux学习之路
liunx 运维小技巧(二)shell函数

liunx 运维小技巧(二)shell函数

作者: joyhj | 来源:发表于2017-04-23 17:19 被阅读119次
    1. shell函数是什么
      shell函数可以看作是一组shell命令的组合,用来完成一个特定的功能,它的功能和java中的方法类似。

    2. shell函数长什么样
      铛铛铛,先上代码。

    function log() {
       local path="/var/log/";
       if [ $1 == "test" ]; then
       path+="test/testserver-";
       else
       echo "server name error";
       return 1;
       fi;
       path+=$(date +%Y-%m-%d);
       path+=".log";
       tail -f  $path;
    }
    

    上面是一个打印testserver 当天日志的函数。shell函数和上面这个函数长的都差不多。后面我们将以这个函数为例分析函数的写法和用法。

    1. shell函数怎么写

      1. 函数的基本格式
        function 函数名(){}
        或者
        函数名(){}
        注意 函数名不要用linux shell 关键字,例如不要用let,用了之后可能会出错。
    2. 函数传参
      函数可以传参,函数传参不用在()中预先定义,可以直接使用。在shell函数中用$1 表示传进来的第一个函数,用$2 表示传进来的第二个函数。例如上面的函数log,就用$1表示传进来的第1个函数。当然,函数也可以没有参数。

    3. 函数中使用条件判断,循环
      函数中可以使用条件判断或者循环。需要注意的是shell中的条件判断的写法。

    if   then
    else
    if
    
    1. 函数的局部变量和全局变量
      函数中使用local关键字定义局部变量,局部变量的作用域在函数内部,出了函数就无法调用。在函数中也可以调用在函数外定义的全局变量。

    2. 函数的返回值
      函数使用return关键字来表示函数返回值,一般用在条件判断中需要提前结束函数的地方。return 0表示无错误返回,return 1表示有错误返回。在上面的函数中用return 1表示函数传参出错,提前返回。

    3. shell函数怎么用
      函数可以在linux 命令行中直接使用,可以在shell 脚本中调用。例如上面的函数可以在命令行中通过 log test打印testserver 当天的日志。也可以在shell脚本中通过log test对函数进行相同的调用。
      比较特殊的是函数可以对自身进行调用,即通过在函数体中调用函数的方法名实现调用自身。这就是通常所说的递归调用。不过递归调用需要有退出的方法,一般通过函数中的条件判断实现,不然的会形成死循环,无法退出。

    相关文章

      网友评论

        本文标题:liunx 运维小技巧(二)shell函数

        本文链接:https://www.haomeiwen.com/subject/tihyzttx.html