关于shell中的${},##和%%的记忆

关于${}用来截取字符串的方法如下所示:

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

上述记忆起来比较费劲,有什么办法呢?下面是我记录的方法:(先定方向再看远近)
在键盘上#和%分别位于$的两边,

  1. #方向从左向右, #删除第一个发现的关键字以及左边的全部内容,## 删除最后一个关键字出现地方及其左边的全部内容
  2. %方向从右向左,%删除第一个发现的关键字以及右边的全部内容,%%删除最后一个关键字出现地方及其右边的全部内容

你可能感兴趣的:(shell)