变量替换 

符号 含义
${var} 变量,界定范围
${var:-word} 如果var为空或者未设定,返回word,var不变
${var:=word} 如果var为空或者未设定,返回word,且var=word
${var:+word} 如果var有值,返回word,var不变
${var:?word} 如果变量var为空或者未设定,返回word并退出shell,word没有值则输出:parameter null or not set,用于检测var是否被正常赋值
${var-word} 如果var未设定,返回word,如果var未空或者有值,返回var
${var:num} 返回var中第num个字符到末尾的所有字符,正从左往右,负从右往左,有空格:${var: -2},没有空格:${var:1-3}或${var:(-2)}
${var:num1:num2} 从var的第num1个位置开始,提取长度为num2的子串。num1是位置,num2是长度
${var/word1/word2} 将var中第一个匹配到的word1替换为word2
${var//word1/word2} 将var中所有word1替换为word2