Aix

“serial=${serial##*.}”是做什麼的?

  • January 4, 2012

可能重複:

${0## /} 和 ${0%/ } 是如何工作的?

0:root@SERVER:/ # 
0:root@SERVER:/ # serial=$(lscfg -vl hdisk1 | awk '/Serial Number/')
0:root@SERVER:/ # echo $serial                                      
Serial Number...............11BBGG11235
0:root@SERVER:/ #             
0:root@SERVER:/ # 
0:root@SERVER:/ # serial=${serial##*.}                              
0:root@SERVER:/ # echo $serial                                      
11BBGG11235
0:root@SERVER:/ # 

exaclty 是什麼意思

serial=${serial##*.}

做?有人可以解釋一下嗎?很難用Google搜尋它:D

它是shell中的參數擴展。例如:

serial=${serial##*.} – 這將獲取最後一個欄位中的值,由 ‘.’ 分隔 分隔符。抓住最後一個’。在值中並列印其餘數據。

parameter     result
-----------   ------------------------------
${NAME}       polish.ostrich.racing.champion
${NAME#*.}           ostrich.racing.champion
${NAME##*.}                         champion
${NAME%%.*}   polish
${NAME%.*}    polish.ostrich.racing



parameter     result
-----------   --------------------------------------------------------
${FILE}       /usr/share/java-1.4.2-sun/demo/applets/Clock/Clock.class
${FILE#*/}     usr/share/java-1.4.2-sun/demo/applets/Clock/Clock.class
${FILE##*/}                                                Clock.class
${FILE%%/*}
${FILE%/*}    /usr/share/java-1.4.2-sun/demo/applets/Clock

有關更多範例,請查看http://mywiki.wooledge.org/BashFAQ/073

引用自:https://unix.stackexchange.com/questions/28267