shell命令

脚本中用到的命令:

1. ((timeout - -))说明:

给timeout的一个初始值,该命令实现一个减时器的功能。
timeout:行指定的命令,如果在指定时间后仍在运行,则杀死该进程。用来控制程序运行的时间
例如:
timeout 10 top :如果在10s之后top命令还在运行,就kill掉top进程

2. if 判断相关参数说明

-s :#文件大小非零为真 
-r :#文件存在且可读 
-ne :#不等于为真 
-n:#字符串长度大于零为真
-z: 字符串长度为0 为真 
-x:如果文件存在且可执行为真
-S:文件存在且是为socket文件

3. 脚本中使用set

set +e:当这句之后遇到非零的返回值,会继续执行
set -e:当这句遇到非零返回值,会直接退出

4. 字符串截取

${#VALUE}:计算VALUE字符串的字符数量。
${VALUE%.*}或${VALUE%%.*}:删除VALUE字符串中以分隔符“.”匹配的右边字符,保留左边字符。
${VALUE#*.}或${VALUE##*.}:删除VALUE字符串中以分隔符“.”匹配的左边字符,保留右边字符。
${VALUE/OLD/NEW}或${VALUE//OLD/NEW}:用NEW子串替换VALUE字符串中匹配的OLD子串。
${string: start :length}:   从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
${string: start}   :        从 string 字符串的左边第 start 个字符开始截取,直到最后。
${string: 0-start} :        从 string 字符串的右边第 start 个字符开始截取,直到最后。
${string#*chars}  :         从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string##*chars} :         从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string%chars*} :          从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。
${string%%chars*} :         从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。

5. printenv命令说明

显示指定的环境变量的值,如果没有指定变量,则打印出所有变量的名称和值。 
通过printenv命令,我们可以查看到当前的shell,和shell的环境变量,和其它一些常见的配置 。

6. {{var:- valuename}}使用说明:

${varname:-word},如果varname存在且非null,则返回其值;否则,返回word。
用途:如果变量未定义,则返回默认值。