${}配合#及%使用达到字符串中特定位置字符删除操作
假设有一个变量:
file=/dir1/dir2/fir3/my.file.txt
1、使用${}删除特定位置字符后得到不同的值
${file#*/}:删掉第一个/及其左边的字符串 结果 -- dir1/dir2/dir3/my.file.txt
${file##*/}:删掉最后一个/及其左边的字符串 结果 -- my.file.txt
${file#*.}:删除第一个.及其左边的字符串 结果 -- file.txt
${file##*.}:删除最后一个.及其左边的字符串 结果 -- txt
${file%/*}:删除最后一个/及其右边的字符串 结果 -- /die1/dir2/dir3
${fiel%%/*}:删除第一个/及其右边的字符串 结果 -- 空值
${file%.*}:删掉最后一个.及其右边的字符串 结果 -- /dir1/dir2/dir3/my.file
记忆技巧:
# 是去掉左边(键盘上#在$左边)
% 是去掉右边(键盘上%在$的右边)
2、按一定规律提取字符
${file:0:5}:提取最左边的 5 个字节:/dir1 (第0个字符之后的5个字符)
${file:5:5}:提取第 5 个字节右边的连续5个字节:/dir2 (第五个字符之后的5个字符)
3、可以对变量值里的字符串作替换
${file/dir/path}
${file//dir/path}
第一句将第一个dir 替换为path:/path1/dir2/dir3/my.file.tx
第二句将全部dir 替换为 path:/path1/path2/path3/my.file.txt
输出:
输出: