随笔分类 -  Shell

摘要:一、什么是Expect Expect是一个用来实现自动交互功能的软件套件(Expect is a software suite for automating interactive tools,这是作者的定义),是基于TCL的脚本编程工具语言,方便学习,功能强大。 在现今的企业运维中,自动化运维已经 阅读全文
posted @ 2020-10-20 14:43 yaowx 阅读(1770) 评论(0) 推荐(0)
摘要:一、什么是数组 简单地说,Shell的数组就是一个元素集合,它把有限个元素(变量或字符内容)用一个名字来命名,然后用编号对它们进行区分。这个名字就称为数组名,用于区分不同内容的编号就称为数组下标。组成数组的各个元素(变量)称为数组的元素,有时也称为下标变量。 二、数组的定义 方法1:小括号定义 [r 阅读全文
posted @ 2020-10-15 19:56 yaowx 阅读(212) 评论(0) 推荐(0)
摘要:一、循环控制命令 break n 省略n,表示跳出整个循环;n表示跳出循环的层数 continue n 省略n,表示跳过本次循环,忽略本次循环的剩余代码,进入下一次的循环;n表示退出到第n层循环 exit n 退出当前shell程序,n为上一次程序执行的状态返回值。n也可以省略,在下一个shell里 阅读全文
posted @ 2020-10-15 16:06 yaowx 阅读(309) 评论(0) 推荐(0)
摘要:一、select介绍 select循环语句的主要作用可能就是创建菜单,在执行带select循环语句的脚本时,输出会按照数字顺序的列表显示一个菜单项,并显示提示符(默认是#?),同时等待用户输入数字进行选择。 二、select语法格式 select 变量名 [in 菜单取值列表] do 命令集 don 阅读全文
posted @ 2020-10-14 18:05 yaowx 阅读(1344) 评论(0) 推荐(1)
摘要:方法1:通过系统环境变量($RANDOM) [root@node1 scripts]# echo $RANDOM 4245 [root@node1 scripts]# echo $RANDOM 22740 RANDOM的随机数范围为0~32767,因此,加密性不是很好,可以通过在输出的随机数后增加加 阅读全文
posted @ 2020-10-14 11:21 yaowx 阅读(2316) 评论(0) 推荐(2)
摘要:一、for循环介绍 for循环语句和while循环语句类似,但for循环语句主要用于执行次数有限的循环,而不是用于守护进程及无限循环。 二、for语言的结构 方法一:常用写法 for 变量名 in 循环列表 do 命令集 done 这种for循环语句语法中,for关键字后面会有一个“变量名”,变量名 阅读全文
posted @ 2020-10-14 10:53 yaowx 阅读(1642) 评论(0) 推荐(0)
摘要:一、while语句介绍 while循环语句主要用来重复执行一组命令或语句,一直到条件不在满足为止,常用于守护进程或持续运行的程序。 二、while语句的语法格式 1、一般格式 while <条件表达式> #条件表达式为真则执行下面的命令集 do 命令集 done 2、死循环格式 while true 阅读全文
posted @ 2020-10-13 21:45 yaowx 阅读(1230) 评论(0) 推荐(0)
摘要:在实际工作中,一般会通过客户端SSH连接服务器,因此可能就会有在脚本或命令执行期间不能中断的需求,若中断,则会前功尽弃,更可能会破坏系统数据。为了预防因为ssh链接窗口的关闭而导致脚本运行中断,我们可以把脚本放在后台运行。 案例说明: 脚本信息 [root@node1 scripts]# cat w 阅读全文
posted @ 2020-10-12 21:07 yaowx 阅读(631) 评论(0) 推荐(0)
摘要:一、case语句说明 case条件语句相当于多分支的if/elif/else条件语句,但是它比这些条件语句看起来更规范更工整,常被应用于实现系统服务启动脚本。 ​ 在case语句中,程序会将case获取的变量的值与表达式部分的值1、值2、值3等逐个进行比较,如果获取的变量值和某个值(例如值1)相匹配 阅读全文
posted @ 2020-10-12 11:16 yaowx 阅读(3204) 评论(0) 推荐(0)
摘要:一、给字符串上颜色 在Linux脚本中,可以通过echo的-e参数,结合特殊的数字给不同的字符加上颜色并显示。 内容的颜色可用数字表示,范围为30~37,每个数字代表一种颜色。代码如下: echo -e "\033[30m 黑色字hello world \033[0m" #<==30m表示黑色字。 阅读全文
posted @ 2020-10-11 20:56 yaowx 阅读(460) 评论(0) 推荐(0)
摘要:一、shell的函数介绍 函数的作用就是将程序里多次被调用的相同代码组合起来(函数体),并为其取一个名字(即函数名),其他所有想重复调用这部分代码的地方都只需要调用这个名字就可以了。当需要修改这部分重复代码时,只需要改变函数体内的一份代码即可实现对所有调用的修改,也可以把函数独立地写到文件里,当需要 阅读全文
posted @ 2020-10-10 22:03 yaowx 阅读(272) 评论(0) 推荐(0)
摘要:案例1:开发Shell脚本判断系统剩余内存的大小,如果低于2000MB,就邮件报警给系统管理员,并且将脚本加入系统定时任务,即每3分钟执行一次检查。 1)获取当前系统剩余内存的值 [root@node1 ~]# free -m total used free shared buff/cache av 阅读全文
posted @ 2020-10-10 14:23 yaowx 阅读(275) 评论(0) 推荐(0)
摘要:if条件语句的语法 1、单分支if语句 语法格式 第一种语法格式: if <条件表达式> then 命令1 命令2 命令3 。。。 fi 第二种语法格式: if <条件表达式> ;then 命令1 命令2 命令3 。。。 fi 如果条件表达式为真,则执行下面的命令集;否则就什么也不做。 if单分支的 阅读全文
posted @ 2020-10-09 15:20 yaowx 阅读(338) 评论(0) 推荐(0)
摘要:一、条件测试语法 语法1:test <测试表达式> 利用test命令进行条件测试表达式的方法。test命令与<测试表达式>之间至少有一个空格。 语法2:[ <测试表达式> ] 通过[](单中括号)进行条件测试表达式的方法,和test命令用法相同。[]的边界和内容之间至少有一个空格。 语法3:[[ < 阅读全文
posted @ 2020-10-05 17:48 yaowx 阅读(600) 评论(0) 推荐(0)
摘要:一、算数运算符 +、- 加法(或正号)、减法(或符号) *、/、% 乘法、除法、取余(取模) ** 幂运算 ++、—— 增加及减少,可前置也可放在变量结尾 !、&&、|| 逻辑非(取反)、逻辑与(and)、逻辑或(or) <、<=、>、>= 比较符号(小于、小于等于、大于、大于等于) ==、!=、= 阅读全文
posted @ 2020-10-04 21:16 yaowx 阅读(817) 评论(0) 推荐(0)
摘要:一、变量的字串 ${parameter} 返回变量$parameter的内容 ${#parameter} 返回变量$parameter的内容长度(按字符) ${parameter:offset} 在变量${parameter}中,从位置offset之后开始提取字串的内容到结尾 ${parameter 阅读全文
posted @ 2020-10-04 14:35 yaowx 阅读(234) 评论(0) 推荐(0)
摘要:$?: 获取执行上一个指令的执行状态返回值(0为成功,非0为失败) 通常用法: 1)判断命令、脚本或函数等程序是否执行成功。 2)若在脚本中调用执行“exit数字”,则会返回这个数字给“$?”变量。 3)如果是在函数里,则通过“return数字”把这个数字以函数返回值的形式传给“$?”。 $$: 获 阅读全文
posted @ 2020-10-04 09:53 yaowx 阅读(333) 评论(0) 推荐(0)
摘要:在Shell中存在一些特殊且重要的变量,例如:0、1、$#,我们称之为特殊位置参数变量。要从命令行、函数或脚本执行等处传递参数时,就需要在Shell脚本中使用位置参数变量。 $0: 获取当前执行的shell脚本的文件名,如果执行脚本包含了路径,那么就包含脚本的路径。 $n: 获取当前执行的shell 阅读全文
posted @ 2020-10-04 09:08 yaowx 阅读(487) 评论(0) 推荐(0)
摘要:一、什么是变量 1、什么是变量 变量就是用一个固定的字符串(字符、字符+数字的组合等)替代更多、更复杂的内容,该内容可能还包含变量、路径、字符串等其它内容。 变量是暂时存储数据的地方及数据标记,所存储的数据是存放在内容空间中,通过正确地调用内存看空间中变量的名字九可以取出与变量相对应的数据。 注意变 阅读全文
posted @ 2020-10-03 20:44 yaowx 阅读(968) 评论(0) 推荐(0)