一、字符串条件判断
简单表达式 | 解释 | 实例 |
Left=${right} | Left= 变量right 的值, 与$right 相同 | right=”a”;left=${right};echo ${left} a |
Left=${right– DEFAULTSTRING} | 如果right 没有被声明 , 那么就以$DEFAULTSTRING 作为left 的值,否则left=$right | left=${right-“default”};echo $left $right default
right=””;left=${right-“default”};echo $left $right
|
Left=${right:- DEFAULTSTRING} | 如果right 没有被声明, 或者其值为空 , 那么就以$DEFAULTSTRING 作left 的值,否则left=$right | right=””;left=${right:-“default”};echo $left $right default |
Left=${right= DEFAULTSTRING} | 如果right 没有被声明 , 那么就以$DEFAULTSTRING 作为left 的值, 同时right=$DEFAULTSTRING, 否则left=$right | right=””;left=${right=”default”};echo $left $right
|
Left=${right:= DEFAULTSTRING} | 如果right 没有被声明, 或者其值为空 , 那么就以$DEFAULTSTRING 作为left 的值, 同时right=$DEFAULTSTRING, 否则left=$right | right=””;left=${right:=”default”};echo $left $right default default |
二、字符串常用操作(长度,读取,替换)
字符表达式 | 解释 | 实例 |
${#string} | 获取$string 字符长度 | test=”12345″;echo ${#test} 5 |
${string:pos} | 在$string 中, 从位置$pos 开始提取串(pos 从0 开始) | test=”12345″;echo ${test:1} 2345 |
${string:pos:length} | 在$string 中, 从位置$pos 开始提取长度为$length 的串 | test=”12345″;echo ${test:1:2} 23 |
${string#substring} | 从变量$string 左边, 删除最短匹配$substring 的串 | test=”123453467″;echo ${test#*3} 453467 |
${string##substring} | 从变量$string 左边, 删除最长匹配$substring 的串 | test=”123453467″;echo ${test##*3} 467 |
${string%substring} | 从变量$string 的右边开始, 删除最短匹配$substring 的串 | test=”123453467″;echo ${test%3*} 12345 |
${string%%substring} | 从变量$string 的右边开始, 删除最长匹配$substring 的串 | test=”123453467″;echo ${test%%3*} 12 |
${string/substring/replacement} | 使用$replacement, 来代替第一个匹配的$substring | test=”123453467″;echo ${test/3/9} 129 453467 |
${string//substring/replacement} | 使用$replacement, 代替所有 匹配 的$substring | test=”123453467″;echo ${test//3/9} 129 459 467 |
${string/#substring/replacement} | 如果$string 的前缀 匹配 $substring, 那么就用$replacement 来代替$substring | test=”123123467″;echo ${test/#123/9} 9 123467 |
${string/%substring/replacement} | 如果$string 的后缀 匹配$substring, 那么就用$replacement 来代替$substring | test=”123123467″;echo ${test/%467/9} 1231239 |