一、字符串條件判斷
簡單表達式
解釋
實例
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