我用 LinuxLinux学习之路

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

2017-04-23  本文已影响119人  joyhj
  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对函数进行相同的调用。
    比较特殊的是函数可以对自身进行调用,即通过在函数体中调用函数的方法名实现调用自身。这就是通常所说的递归调用。不过递归调用需要有退出的方法,一般通过函数中的条件判断实现,不然的会形成死循环,无法退出。

上一篇下一篇

猜你喜欢

热点阅读