1. 變量測試與內(nèi)容替換
變量轉(zhuǎn)換方式 |
變量y沒有設(shè)置 |
變量y為空值 |
變量y設(shè)置值 |
分析 |
x=${y-新值} |
x=新值 |
x為空 |
x=$y |
如何y被設(shè)值則x=$y,否則x=新值 |
x=${y:-新值} |
x=新值 |
x=新值 |
x=$y |
如何y值不為空則x=$y,否則x=新值 |
x=${y+新值} |
x為空 |
x=新值 |
x=新值 |
若y被設(shè)值則x=新值,否則x為空 |
x=${y:+新值} |
x為空 |
x為空 |
x=新值 |
若y值不為空則x=新值饺饭,否則x為空 |
x=${y=新值} |
x=新值,y=新值 |
x為空狱掂,y值不變 |
x=$y,y值不變 |
若y被設(shè)值則x=$y且y值不變,否則x=新值且y=新值 |
x=${y:=新值} |
x=新值夸研,y=新值 |
x=新值,y=新值 |
x=$y,y值不變 |
若y不為空則x=$y且y值不變甲脏,否則x=新值且y=新值 |
x=${y?新值} |
新值輸出到標(biāo)準(zhǔn)錯(cuò)誤輸出(就是屏幕) |
x為空 |
x=$y |
若y被設(shè)值則x=$y且y值不變治力,否則新值輸出到標(biāo)準(zhǔn)錯(cuò)誤輸出(就是屏幕) |
x=${y:?新值} |
新值輸出到標(biāo)準(zhǔn)錯(cuò)誤輸出 |
新值輸出到標(biāo)準(zhǔn)錯(cuò)誤輸出 |
x=$y |
若y不為空則x=$y且y值不變蒙秒,否則新值輸出到標(biāo)準(zhǔn)錯(cuò)誤輸出(就是屏幕) |
2. 變量替換一
符號 |
含義 |
${var} |
變量,界定范圍 |
${var:num} |
返回var中第num個(gè)字符到末尾的所有字符宵统,正從左往右晕讲,負(fù)從右往左,有空格: {var:1-3}或${var:(-2)} |
${var:num1:num2} |
從var的第num1個(gè)位置開始瓢省,提取長度為num2的子串。num1是位置痊班,num2是長度 |
${var::num1} |
從var的開始位置勤婚,提取到num1位置的子串。(正數(shù):從左開始涤伐,負(fù)數(shù):從右側(cè)開始) |
${var/word1/word2} |
將var中第一個(gè)匹配到的word1替換為word2 |
${var//word1/word2} |
將var中所有word1替換為word2 |
3. 變量替換二
定義一個(gè)變量定義了一個(gè)變量file:
file=/dir1/dir2/dir3/my.file.txt
符號 |
含義 |
${file#*/} |
刪掉第一個(gè) / 及其左邊的字符串:dir1/dir2/dir3/my.file.txt |
${file##*/} |
刪掉最后一個(gè) / 及其左邊的字符串:my.file.txt |
${file#*.} |
刪掉第一個(gè) . 及其左邊的字符串:file.txt |
${file##*.} |
刪掉最后一個(gè) . 及其左邊的字符串:txt |
${file%/*} |
刪掉最后一個(gè) / 及其右邊的字符串:/dir1/dir2/dir3 |
${file%%/*} |
刪掉第一個(gè) / 及其右邊的字符串:(空值) |
${file%.*} |
刪掉最后一個(gè) . 及其右邊的字符串:/dir1/dir2/dir3/my.file |
${file%%.*} |
刪掉第一個(gè) . 及其右邊的字符串:/dir1/dir2/dir3/my |