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

shell 死循环if判断_运维小技巧(2):shell函数相关推荐

  1. 有哪些不为人知的安全运维小技巧?

    今天分享一些实用安全运维小技巧. 1.主动预防 攻防之间信息往往不对称,很多攻击利用安全漏洞趁火打劫,运维工程师未必能在第一时间拦截,导致服务器被黑.因此运维工程师要主动预防,积极获取信息. 原因无外 ...

  2. 一些拍案叫绝的运维小技巧

    需求 在运维工作中随着经验不断增多,以下场景想必经常遇到: Linux如何快速删除大量文件? Vsphere如何在不重启的情况下识别新添加的iscsi硬盘? Linux中rm命令如何做到防误删? 不同 ...

  3. shell那点事儿——运维工程师必会shell知识

    运维工程师必会shell知识 前言 一.常用的shell小知识 变量 字符串长度判断 字符串截取 变量判断.赋值 整数运算 shell中各括号用途 echo输出 终端更改 清空屏幕打印 日期相关 生成 ...

  4. python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客

    python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客 python脚本监控网站状态 2013-01-09 09:21:02 标签:监控 python 原创作品,允许转载,转载时请 ...

  5. 运维小菜鸟随笔Linux入门级操作命令(更新中。。。)

    运维小菜鸟随笔&Linux入门级操作命令 从事实施运维行业已三年有余,却从未系统的学习过Linux,一直停留在有问题找百度的境界.近日终于痛下决心,系统的梳理一下Linux相关知识,顺便看看, ...

  6. 智慧楼宇管理运营端app、运维管理、工单管理、报修管理、维保管理、巡检查询、巡检管理、能源管理、维保查询、智慧社区、巡检统计、工单统计、能源管理、智能楼宇、设备监控、智能社区、系统运营、楼宇运维小程序

    智慧楼宇管理运营端app.运维管理.工单管理.报修管理.维保管理.巡检查询.巡检管理.能源管理.维保查询.智慧社区.巡检统计.工单统计.能源管理.智能楼宇.设备监控.智能社区.系统运营.楼宇运维小程序 ...

  7. 干货 | 95后运维小哥20天+通过Elastic认证考试经验分享

    题记 早上,收到95后的星友[在路上(昵称)]发的动态,得知其已经通过了Elastic认证考试. 仔细一看,他准备时间只有20天左右,真厉害!为他高兴和点赞. 运维小哥第一时间在星球做了分享,我特意邀 ...

  8. 【泛微系统】OA运维小知识

    OA运维小知识 功能开关目录: D:\WEAVER\ecology\WEB-INF\prop\module 路径存放目录: D:\WEAVER\ecology\WEB-INF\prop\page 右键 ...

  9. linux云自动化运维,Liunx运维一线大神亲授 全新Linux云计算运维基础与Linux Shell自动化运维实战课程...

    Liunx运维一线大神亲授 全新Linux云计算运维基础与Linux Shell自动化运维实战课程 全新Linux云计算运维基础与Linux Shell自动化运维实战课程,由于国内一线大神亲自授课与教 ...

最新文章

  1. http与https的区别,http 1.0与1.1的区别
  2. uiiamgeview 设置圆角
  3. SDM For Face Alignment 流程介绍及Matlab代码实现之预处理篇
  4. 微软电脑适合什么人用_#微软surface pro使用心得# 大学生挑电脑参考/平板与电脑二合一到底买的是什么...
  5. 将samba加入到windows域《转载》
  6. 淘宝设计万能PSD分层模板(简约页面设计——少即是多)
  7. hihocoder题目
  8. ie对象不支持“jggrid“属性或方法_8.2 location 对象
  9. [转载]Dorado中DataTable使用技巧汇总
  10. shp格式文件出带审图号的地图
  11. 自然辩证法2018版_2018年《自然辩证法概论》已整理
  12. 基于Matlab解决线性规划问题
  13. Unity【HTC Vive Noitom】- 关于动作捕捉的两种解决方案
  14. oracle从11.0.2.4.0打PSU 11.0.2.4.8
  15. 同比与环比——财务小知识点
  16. react具名插槽与作用域插槽
  17. 跨模态行人重识别:RGB-Infrared Cross-Modality Person Re-Identification(2017 ICCV)
  18. SVN 如何解决冲突?
  19. 如何判断PHP数组是否为空
  20. 号外丨边缘计算社区品牌升级!

热门文章

  1. 我做的4周岁儿童编程课程【视频】分享
  2. ESX VCENTER克隆或复制产生的GUEST OS,网卡问题处理
  3. 完成这个例子,说出java中针对异常的处理机制。
  4. 全部编程皆为Web编程
  5. 职场女人的心理问题提醒
  6. 在.NET环境下将报表导出Excel和Word
  7. windows 报错 没有文件扩展.vbs的脚本引擎 解决方法
  8. telegram 组(groups) 和 频道(channels) 简介
  9. linux shell 执行 几种方式区别 bash source .
  10. python3 去除列表中重复的元素 保存原来顺序