脚本编程知识点

1、获取变量中字符的长度

${#VARNAME}

wKiom1PkLOTis54CAAA75Oqn3L4169.jpg


2、变量赋值

${parameter:-word}:如果parameter为空或者未定义,则整个表达式为word;否则表达式值为parameter

wKioL1PkL4XyBKb_AABtk-lovJE798.jpg

 

${parameter:=word}:如果parameter为空或者未定义,则整个表达式值为world;否则整个表达式值为parameter的值。 "-"和"="号实现的功能是一样的。

wKiom1PkMhnz1zZMAABl770TKHY192.jpg


${parameter:+word}:如果parameter为空或者未定义,则整个表达式为空;如果parameter有值,则整个表达式为word。

wKiom1PkML2Sy6SgAABhm_-py-Y822.jpg



3、截取字符串中的子字符串

${parameter:offset}:截取从offset开始到后面的所有字符串。默认字符串的索引为0。

${parameter:offset:length}:截取从offset开始,取length长度的字符串。

wKiom1PkNIfgt8ntAABgfodwQgs730.jpg


4、脚本配置文件

大多数服务脚本文件都位于/etc/rc.d/init.d/目录下,而这些服务脚本文件也支持配置文件,这些服务脚本的配置文件放在/etc/sysconfig/服务脚本同名的配置文件,要想让服务脚本文件识别这些配置文件,只需在服务脚本文件中读取指定的配置文件即可(通过.  /path/to/*.conf方式读取),这样服务脚本文件就可以读取指定的配置文件内容了。



5、全局变量和局部变量

全局变量在整个脚本范围内有效,本地变量可以影响全局变量的值进而影响整个作用域。

本地变量又包括局部变量,局部变量只能在指定作用域内发挥作用。使用local关键字来定义局部变量。

例如:

wKioL1PkPOfhtczyAACCN1lYzYE467.jpg

wKioL1PkPZODHDXwAADlAb_gQFw963.jpg


 

5、创建临时文件

默认情况下/tmp目录是用来保存临时文件,所以当过了某一段时间之后,该目录下的所以内容都会清空。

如何创建临时文件

使用mktemp命令可以用来创建临时文件

mktemp /tmp/file.XX 默认创建为文件

-d选项用来创建目录的

其中XX表示随机生成的数字,防止生产的临时文件重名

wKiom1PlxjTR8zYFAACkeCYiqW0732.jpg

 

6、信号捕捉

所谓信号捕捉就是当某个进程接受到某个信号时,可以执行某些命令。

在脚本中,是无法捕捉到信号9和信号15的,但是可以捕捉信号1和2等

捕捉信号使用trap命令

trap 'command'  信号列表

如果执行的命令有多个可以使用分号隔开

wKioL1PlzHKQS4fxAAFEVFoeXaw201.jpg

 

也可以将执行的命令也在函数里面去,然后在执行trap命令时,使用trap  '函数'  信号列表来执行即可

wKioL1PlzYnQcupoAAFJ3f7zlGs905.jpg