变量扩展:取字符串切片,字符串长度

字符串切片语法:

1.${变量:位置起点}

2.${变量:位置起点:长度}


位置参数:

$0 函数名

$@ 所有参数

${@:起点}

${@:起点:个数}



计算字符串长度

语法: ${#变量名}


${#变量名} 计算字符串长度

${#数组[@]}取得数组元素个数

${#数组[*]}取得数组元素个数


expr length "字符串"

expr "字符串" : '.*'

例:

str='Here you are'

len=${expr length "$str"}

len1=${expr "$str" : '.*'} 一定要有"",'',:之间一定要有空格


变量扩展:对比样式

由字符串前面对比,删除相符者

${变量#样式} 删除最小匹配

${变量##样式} 删除最长匹配

例:

filename="/usr/sbin/ntpdate"

r=${filename#/*/}

s=${filename##/**/}

echo $r,$s

由字符串前面对比,删除相符者

${变量%样式} 删除最小匹配

${变量%%%样式} 删除最长匹配


取代或删除部分字符串

只替换第一个匹配的字符串

${变量/样式/替换字符串}

替换全部匹配的字符串

${变量//样式/替换字符串}

只删除第一个匹配的字符串

${变量/样式/}

删除所有匹配的字符串

${变量//样式/}


要求样式在句首或句尾

#

例:

str="Tony,This is Joy."

r=${str/#T*/}

echo $r