AIOps 一场颠覆传统运维的盛筵
895
2022-09-28
运维小技巧(2):shell函数
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函数和上面这个函数长的都差不多。后面我们将以这个函数为例分析函数的写法和用法。
3.shell函数怎么写
函数的基本格式
function 函数名(){}或者函数名(){}注意 函数名不要用linux shell 关键字,例如不要用let,用了之后可能会出错。
4.函数可以传参吗函数可以传参,函数传参不用在()中预先定义,可以直接使用。在shell函数中用$1 表示传进来的第一个函数,用$2 表示传进来的第二个函数。例如上面的函数log,就用$1表示传进来的第1个函数。当然,函数也可以没有参数。
5.函数中使用条件判断,循环函数中可以使用条件判断或者循环。需要注意的是shell中的条件判断的写法。
if then else if
6.函数的局部变量和全局变量函数中使用local关键字定义局部变量,局部变量的作用域在函数内部,出了函数就无法调用。在函数中也可以调用在函数外定义的全局变量。
7. 函数的返回值函数使用return关键字来表示函数返回值,一般用在条件判断中需要提前结束函数的地方。return 0表示无错误返回,return 1表示有错误返回。在上面的函数中用return 1表示函数传参出错,提前返回。
8. shell函数怎么用函数可以在linux 命令行中直接使用,可以在shell 脚本中调用。例如上面的函数可以在命令行中通过 log test打印testserver 当天的日志。也可以在shell脚本中通过log test对函数进行相同的调用。比较特殊的是函数可以对自身进行调用,即通过在函数体中调用函数的方法名实现调用自身。这就是通常所说的递归调用。不过递归调用需要有退出的方法,一般通过函数中的条件判断实现,不然的会形成死循环,无法退出。
发表评论
暂时没有评论,来抢沙发吧~