我是unix的新手,有人可以告诉我'%?'的目的吗?在下面的命令:使用%?在unix
-bash-3.2$ sample=test123
-bash-3.2$ sample=${sample%?}
-bash-3.2$ echo $sample
test12
我可以看到它被移除的最后一个字符,但我想我可以删除尽可能多的字符,例如3个本地字符等
我是unix的新手,有人可以告诉我'%?'的目的吗?在下面的命令:使用%?在unix
-bash-3.2$ sample=test123
-bash-3.2$ sample=${sample%?}
-bash-3.2$ echo $sample
test12
我可以看到它被移除的最后一个字符,但我想我可以删除尽可能多的字符,例如3个本地字符等
这是一个模式匹配运算,意思是“如果该图案的变量的值的末端相匹配,删除匹配的最短部分和退还其余“。由于?
匹配“任何单个字符”,最后一个字符将被删除。
所以,如果你想删除三个字符,你需要用一个匹配三个字符而不是一个字符的表达式替换?
。
第一: 人1 bash的
语法:$ {VARNAME%词},其中词是 “匹配后缀模式”,让您可以:
只删除 “123”:
echo ${sample%123}
test
除去任何3个字符:
echo ${sample%???}
test
等
%
是bash的参数替换操作符从最短后除去
${var%pattern}
?
指任何单个字符
谢谢Kugathsan。 – Chaitanya 2013-03-13 09:18:39
@ user2065083::) – 2013-03-13 09:38:31
感谢您的快速响应很多安德鲁。 – Chaitanya 2013-03-13 09:19:01