Shell 子串

${变量} 										返回变量值 
${#变量} 										返回变量长度,字符长度 
${变量:start} 							返回变量 start 数值之后的字符 
${变量:start:length} 				提取 start。之后的 length 限制的字符 
${变量#word} 								从变量开头删除最短匹配的 word 子串 
${变量##word} 							从变量开头,删除最长匹配的 word 
${变量%word} 								从变量结尾删除最短的 word 
${变量%%word} 							从变量结尾开始删除最长匹配的 word 

# 替换
${变量/pattern/string} 			用 string 代替第一个匹配的 pattern 
${变量//pattern/string}			用string代替所有的pattern

创建进程列表(创建子 shell 执行命令)

需要大家,执行一系列的 shell 命令

ls; cd; pwd; echo "奥利给"

列表,肯定是被包括起来的数据

Shell 的进程列表理念,需要使用()小括号,如下执行方式,就称之为,进程列表

加上小括号,就是开启子shell运行命令的;

(cd ~pwd;1s; cd /tmp/; pwd;1s)

为什么要开启子shell

为了不阻塞当前shell执行;

检测是否在子 shell 环境中

linux 默认的有关 shell 的变量

# 该变量的值特点,如果是 0 就是父 shell 环境(当前shell环境中执行的),否则子 shell(就是在子shell中执行的)
$BASH_SUBSHELL

(date ; echo $BASH_SUBSHELL)

嵌套 子 shell

刚才一个小括号,开启一个子shell,还可以嵌套多个
(pwd;(echo $BASH_SUBSHELL))

开启子shell可以提高并发程序的执行;