关于${}用来截取字符串的方法如下所示:
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
上述记忆起来比较费劲,有什么办法呢?下面是我记录的方法:(先定方向再看远近)
在键盘上#和%分别位于$的两边,
- #方向从左向右, #删除第一个发现的关键字以及左边的全部内容,## 删除最后一个关键字出现地方及其左边的全部内容
- %方向从右向左,%删除第一个发现的关键字以及右边的全部内容,%%删除最后一个关键字出现地方及其右边的全部内容