在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,像大多数编程语言一样,Shell也使用 break 和 continue 来跳出循环. break命令 break命令允许跳出所有循环(终止执行后面的所有循环). 下面的例子中,脚本进入死循环直至用户输入数字大于5.要跳出这个循环,返回到shell提示符下,就要使用break命令. #!/bin/bash while : do echo -n "Input a number between 1 to 5: " read aNu…
1.应用背景: 无人监测的设备,常需要设置应用程序开机启动,程序启动前需要保证调用的设备先启动,运行环境先启动. 2.test.sh部分源码 #!/bin/sh #查看桌面是否启动 while true; do COUNT=$(ps -ef |grep lxpanel |grep -v "grep" |wc -l) ]; then break fi done #查看nginx是否启动 while true; do COUNT=$(ps -ef |grep nginx |grep -v…
变量 定义变量 可以使用export和readonly来设置变量,export用于修改或打印环境变量,readonly则使得变量不得修改.语法: export name[=word] ... readonly name[=word] ... 可以export/readonly时就给变量赋值,或给变量赋值后再export/readonly变量,如: export website=oseye.net age=22 export age 比较常用的exoprt,它是把变量放进环境中,新的进程可以从其父…
<shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超过64个字符. 2.在某些系统上,命令行部分包含了命令的完整路径名称.不过有些系统却不是这样:命令行的部分会原封不动地传递给被引用的程序. 3.别在选项之后放置任何空白,因为空白也会跟着选项一起传递给被引用的程序. 4.你需要知道解释其的完整路径名称.这可以用来规避可移植问题,因为不同的厂商可能将同样的东西放…
Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix上,还有个wingger大神整理的Shell基础二十篇.这份文档涉及的内容比较多,我没记错的话应该有很多命令的用法,而且配备实际使用的例子,对初学者帮助甚大. <Shell脚本专家指南>(文中提到的书和资料下面都有下载的链接)也是一本不可多得的好书.书中都是作者实际工作中的经验总结,你可以从中学到…
正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50vZlGSGNt0jYq7BN4mac4RrVC96KKq SED(Linux指令)_百度百科 http://baike.baidu.com/link?url=DQklcY8r4u33kGGfZt5Q-Mm6JHgKOGJQqQvpvfB3mYk5R_kiZ4X6jcdBs10ni1cZFm7-Oh…
shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题去问别人,不同的人的回答可能各不相同.我见过/usr/bin/env bash,也见过/bin/bash,还有/usr/bin/bash,还有/bin/sh,还有/usr/bin/env sh.这算是编程界的“’茴’字四种写法”了.在多数情况下,以上五种写法都是等价的.但是,写过程序的人都知道:“少…
继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ` 注意点: 1. 引号不是普通单引号,是右斜的引号,在esc键下方.表达式用这种右斜的引号括起来,必须成对出现 2. 运算符两边要留空格.4+4不行,必须写成4 + 4 运算符不用多说,和其余编程语言类似.加减乘除取余:+-*/% 赋值用=,比较相等用==,比较不等用!= 特别注意的是*要在前面加…
为了捞取日志,自己用python写了一些东西,大致套路就是读取写入文件的操作,放到linux上跑.实际使用时发现要操作的文件有时比较大,直接打开文件找需要的东西可能会有一些效率问题.所以学习一下shell脚本,看一下能不能用这种方法来直接监听日志取到需要的东西.以下是自己学习时的一些笔记. Shell脚本的运行 shell脚本第一行一般都是如下内容.#!开头,告诉系统使用什么解释器(使用哪一种Shell) #!/bin/bash 如何运行: 两种方法. 作为可执行程序的话,cd到相应目录后,运行…
bash同时支持普通数组个关联数组,普通数组只能使用整数作为数组的索引,关联数组可以使用字符串作为数组的索引. 数组的定义方法: 在单行中使用一列值定义一个数组 [root@new ~]# array1=( ) 使用索引-值定义 [root@new ~]# array2[]="test1" [root@new ~]# array2[]="test2" [root@new ~]# array2[]="test3" 使用key-value键值对 [r…