bash基础之变量替换

假设我们定义了一个变量为:
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

记忆的方法为:
#是去掉左边(在键盘上 #  在 $  之左边)
%  是去掉右边(在键盘上 %  在 $  之右边)
单一符号是最小匹配�r两个符号是最大匹配

 

image

你可能感兴趣的:(字符串,File)