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