我是 unix 新手,有人可以告诉我 '%' 的用途吗?在下面的命令中:
-bash-3.2$ sample=test123
-bash-3.2$ sample=${sample%?}
-bash-3.2$ echo $sample
test12
我可以看到它正在删除最后一个字符,但我可以删除任意数量的字符,例如 3 个字符等。
我是 unix 新手,有人可以告诉我 '%' 的用途吗?在下面的命令中:
-bash-3.2$ sample=test123
-bash-3.2$ sample=${sample%?}
-bash-3.2$ echo $sample
test12
我可以看到它正在删除最后一个字符,但我可以删除任意数量的字符,例如 3 个字符等。
这是一个模式匹配运算符,意思是“如果模式匹配变量值的末尾,则删除匹配的最短部分并返回其余部分”。由于?
匹配“任何单个字符”,最后一个字符将被删除。
因此,如果要删除三个字符,则需要将 替换为?
匹配三个字符而不是一个字符的表达式。
%
是从最短后部移除的 bash 参数替换运算符
${var%pattern}
?
表示任何单个字符
第一:man 1 bash
语法: ${varname%word} 其中 word 是“匹配后缀模式”,因此您可以:
仅删除“123”:
echo ${sample%123}
test
删除任何 3 个字符:
echo ${sample%???}
test
ETC