shell变量中字符串处理(#*、##*、%*、%%*)

hcwei 2020年12月21日 517次浏览

示例:

定义一个shell变量为:

a="test1_test2_test3"

分别使用#、##、%*、%%*分割得到不同值:

${a#*_}:删掉第一个_及其左边的字符串:test2_test3
${a##*_}:删掉最后一个_及其左边的字符串:test3
${a%_*}:删掉最后一个_及其右边的字符串:test1_test2
${a%%_*}:删掉第一个_及其右边的字符串:test1

截图:

image.png

字符含义:

#和%分别位于键盘上$的左边与右边
#:代表去掉左边
%:代表去掉右边
单符号为最小匹配
双符号为最大匹配