1.使用 # 和 ## 进行截取(从左到右)

val=“bash-4.2.46-31.el7.x86_64.rpm”

echo ${val#*.}     //  2.46-31.el7.x86_64.rpm
echo ${val##*.}    //  rpm

第一个是从左到右进行截取到第一个"."的字符串。
第二个是从左到右进行截取到最后一个"."的字符串。
这里的 * 表示的是通配符

2. 使用 % 和 %% 进行截取(从右向左)

echo ${val%.*}      //  bash-4.2.46-31.el7.x86_64
echo ${val%%.*}     //  bash-4

这里的第一个说的就是从右向左进行截取到第一个"."。
第二个说的是从右向左截取到最后一个"."。

3.{:}或者${::}进行截取

echo ${val:5:9}   // 4.2.46-31

从左边第5个字符开始,截取9个字符

echo ${val:5}   4.2.46-31.el7.x86_64.rpm

从左边第5个字符到最后一个字符

echo ${val:0-4}   .rpm

从右边第4个字符到最后一个字符

综合一下上面的几个做法,比如:

echo ${val:0-4:3}  .rp

从右边第4个字符开始截取3个字符。