쉘 스크립트에 있는 다음 정규식을 보고 매우 혼란스러워졌습니다.
${0##*/}
${0%/*}
어떻게 작동하나요?
답변1
이는 정규 표현식이 아니며 Bash 매개변수 확장의 예입니다. 이를 변수 또는 특수 매개변수의 값으로 대체합니다. 울위치 위키에는좋은 설명.
기본적으로 귀하의 예에서는 ${0##*/}
다음과 같이 해석됩니다.
$0 변수와 '/' 패턴의 경우 두 해시 값은 다음을 의미합니다.시작인수를 사용하면 패턴까지 포함하여 가장 긴(또는 탐욕스러운) 일치 항목을 제거합니다.
$0
예를 들어 파일 이름은 어디에 있습니까? $HOME/documents/doc.txt
그러면 인수는 다음과 같이 확장됩니다.doc.txt
마찬가지로, ${0%/*}
패턴 /
은 다음과 같습니다.끝매개변수( %
)는 가장 짧거나 탐욕스럽지 않은 일치 항목을 제거합니다. 위의 예에서 제공됩니다 $HOME/documents
.
관련 기사도 참고하세요배쉬 해커 위키.