假設我們定義了一個變量爲:
file=/dir1/dir2/dir3/my.file.txt
我們可以用 ${ } 分別替換獲得不同的值:
${file#*/} 拿掉第一條 / 及其左邊的字符串:dir1/dir2/dir3/my.file.txt
${file##*/} 拿掉最後一條 / 及其左邊的字符串:my.file.txt
${file#*.} 拿掉第一個 . 及其左邊的字符串:file.txt
${file##*.} 拿掉最後一個 . 及其左邊的字符串:txt
${file%/*} 拿掉最後條 / 及其右邊的字符串:/dir1/dir2/dir3
${file%%/*} 拿掉第一條 / 及其右邊的字符串:(空值)
${file%.*} 拿掉最後一個 . 及其右邊的字符串:/dir1/dir2/dir3/my.file
${file%%.*} 拿掉第一個 . 及其右邊的字符串:/dir1/dir2/dir3/my
記憶的方法爲:
#是去掉左邊(在鍵盤上 # 在 $ 之左邊)
% 是去掉右邊(在鍵盤上 % 在 $ 之右邊)
單一符號是最小匹配﹔兩個符號是最大匹配