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