我是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