"serial=${serial##*.}"은 무엇을 합니까? [복사]

"serial=${serial##*.}"은 무엇을 합니까? [복사]

중복 가능성:
어떻게${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:/ # 

정확성이 무슨 뜻인가요?

serial=${serial##*.}

하다? 누군가 이것을 설명할 수 있나요? 구글링이 어렵네요 :D

답변1

이는 쉘에서의 매개변수 확장입니다. 예를 들어:

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

관련 정보