file=/dir1/dir2/dir3/my.file.txt
要求截取一下字符串
file.txt
txt
/dri1/dir2/dir3
null
dir1/dir2/dir3/my.file.txt
/dir1/dir2/dir3/my.file
/dir1/dir2/dir3/my
my.file.txt
處理方法:
echo ${file#*.} 去掉第一點以及左邊的內容
echo ${file##*.} 去掉最後一個點以及左邊的內容
echo ${file%/*} 去掉最後一個/以及右邊的內容
echo ${file%%/*} 去掉第一個/以及右邊的內容
echo ${file#*/} 去掉第一個/以及左邊的內容
echo ${file%.*} 去掉最後一個點以及右邊的內容
echo ${file%%.*} 去掉第一個點以及右邊的內容
echo ${file##*/} 去掉最後一個/以及左邊的內容
解析:如果最前面出現的是#好那麼就是代表去掉左邊的內容,一個#號代表的是去掉第一個出現的某個字符的左邊的內容,兩個#代表的是去掉最後一個出現字符的左邊的內容,%正好相反,代表的是去掉右邊,而且%代表的是去掉最後一個出現的,%%代表的是第一個出現的。選取的字符出現的位置也有差別,#是後面加上*號,然後添加你定位的符號,然而%是先定位符號再加上*號。