shell 死循环if判断_运维小技巧(2):shell函数
- 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.主动预防 攻防之间信息往往不对称,很多攻击利用安全漏洞趁火打劫,运维工程师未必能在第一时间拦截,导致服务器被黑.因此运维工程师要主动预防,积极获取信息. 原因无外 ...
- 一些拍案叫绝的运维小技巧
需求 在运维工作中随着经验不断增多,以下场景想必经常遇到: Linux如何快速删除大量文件? Vsphere如何在不重启的情况下识别新添加的iscsi硬盘? Linux中rm命令如何做到防误删? 不同 ...
- shell那点事儿——运维工程师必会shell知识
运维工程师必会shell知识 前言 一.常用的shell小知识 变量 字符串长度判断 字符串截取 变量判断.赋值 整数运算 shell中各括号用途 echo输出 终端更改 清空屏幕打印 日期相关 生成 ...
- python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客
python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客 python脚本监控网站状态 2013-01-09 09:21:02 标签:监控 python 原创作品,允许转载,转载时请 ...
- 运维小菜鸟随笔Linux入门级操作命令(更新中。。。)
运维小菜鸟随笔&Linux入门级操作命令 从事实施运维行业已三年有余,却从未系统的学习过Linux,一直停留在有问题找百度的境界.近日终于痛下决心,系统的梳理一下Linux相关知识,顺便看看, ...
- 智慧楼宇管理运营端app、运维管理、工单管理、报修管理、维保管理、巡检查询、巡检管理、能源管理、维保查询、智慧社区、巡检统计、工单统计、能源管理、智能楼宇、设备监控、智能社区、系统运营、楼宇运维小程序
智慧楼宇管理运营端app.运维管理.工单管理.报修管理.维保管理.巡检查询.巡检管理.能源管理.维保查询.智慧社区.巡检统计.工单统计.能源管理.智能楼宇.设备监控.智能社区.系统运营.楼宇运维小程序 ...
- 干货 | 95后运维小哥20天+通过Elastic认证考试经验分享
题记 早上,收到95后的星友[在路上(昵称)]发的动态,得知其已经通过了Elastic认证考试. 仔细一看,他准备时间只有20天左右,真厉害!为他高兴和点赞. 运维小哥第一时间在星球做了分享,我特意邀 ...
- 【泛微系统】OA运维小知识
OA运维小知识 功能开关目录: D:\WEAVER\ecology\WEB-INF\prop\module 路径存放目录: D:\WEAVER\ecology\WEB-INF\prop\page 右键 ...
- linux云自动化运维,Liunx运维一线大神亲授 全新Linux云计算运维基础与Linux Shell自动化运维实战课程...
Liunx运维一线大神亲授 全新Linux云计算运维基础与Linux Shell自动化运维实战课程 全新Linux云计算运维基础与Linux Shell自动化运维实战课程,由于国内一线大神亲自授课与教 ...
最新文章
- http与https的区别,http 1.0与1.1的区别
- uiiamgeview 设置圆角
- SDM For Face Alignment 流程介绍及Matlab代码实现之预处理篇
- 微软电脑适合什么人用_#微软surface pro使用心得# 大学生挑电脑参考/平板与电脑二合一到底买的是什么...
- 将samba加入到windows域《转载》
- 淘宝设计万能PSD分层模板(简约页面设计——少即是多)
- hihocoder题目
- ie对象不支持“jggrid“属性或方法_8.2 location 对象
- [转载]Dorado中DataTable使用技巧汇总
- shp格式文件出带审图号的地图
- 自然辩证法2018版_2018年《自然辩证法概论》已整理
- 基于Matlab解决线性规划问题
- Unity【HTC Vive Noitom】- 关于动作捕捉的两种解决方案
- oracle从11.0.2.4.0打PSU 11.0.2.4.8
- 同比与环比——财务小知识点
- react具名插槽与作用域插槽
- 跨模态行人重识别:RGB-Infrared Cross-Modality Person Re-Identification(2017 ICCV)
- SVN 如何解决冲突?
- 如何判断PHP数组是否为空
- 号外丨边缘计算社区品牌升级!