假設:filename=/dir1/dir2/dir3/my.filename.txt
1.單一符號是最小匹配﹔兩個符號是最大匹配。
${filename:0:5}:提取最左邊的5個字節:/dir1 ${filename:5:5}:提取第5個字節右邊的連續5個字節:/dir2
note:
${#var}可計算出變量值的長度:
${#filename}可得到27,因為/dir1/dir2/dir3/my.filename.txt剛好是31個字節
2.對變量值里的字串作替換:
${filename/dir/path}:將第一個dir提換為path:/path1/dir2/dir3/my.filename.txt ${filename//dir/path}:將全部dir提換為path:/path1/path2/path3/my.filename.txt
3.利用${ }還可針對不同的變數狀態賦值(沒設定、空值、非空值):
${filename-my.filename.txt}:假如$filename沒有設定,則使用my.filename.txt作傳回值。(空值及非空值時不作處理) ${filename:-my.filename.txt}:假如$filename沒有設定或為空值,則使用my.filename.txt作傳回值。(非空值時不作處理) ${filename+my.filename.txt}:假如$filename設為空值或非空值,均使用my.filename.txt作傳回值。(沒設定時不作處理) ${filename:+my.filename.txt}:若$filename為非空值,則使用my.filename.txt作傳回值。(沒設定及空值時不作處理) ${filename=my.filename.txt}:若$filename沒設定,則使用my.filename.txt作傳回值,同時將$filename賦值為my.filename.txt。(空值及非空值時不作處理) ${filename:=my.filename.txt}:若$filename沒設定或為空值,則使用my.filename.txt作傳回值,同時將$filename賦值為my.filename.txt。(非空值時不作處理) ${filename?my.filename.txt}:若$filename沒設定,則將my.filename.txt輸出至STDERR。(空值及非空值時不作處理) ${filename:?my.filename.txt}:若$filename沒設定或為空值,則將my.filename.txt輸出至STDERR。(非空值時不作處理)