${0##*/} 및 ${0%/*}는 어떻게 작동하나요?

${0##*/} 및 ${0%/*}는 어떻게 작동하나요?

쉘 스크립트에 있는 다음 정규식을 보고 매우 혼란스러워졌습니다.

${0##*/}
${0%/*}

어떻게 작동하나요?

답변1

이는 정규 표현식이 아니며 Bash 매개변수 확장의 예입니다. 이를 변수 또는 특수 매개변수의 값으로 대체합니다. 울위치 위키에는좋은 설명.

기본적으로 귀하의 예에서는 ${0##*/}다음과 같이 해석됩니다.

$0 변수와 '/' 패턴의 경우 두 해시 값은 다음을 의미합니다.시작인수를 사용하면 패턴까지 포함하여 가장 긴(또는 탐욕스러운) 일치 항목을 제거합니다.

$0예를 들어 파일 이름은 어디에 있습니까? $HOME/documents/doc.txt그러면 인수는 다음과 같이 확장됩니다.doc.txt

마찬가지로, ${0%/*}패턴 /은 다음과 같습니다.매개변수( %)는 가장 짧거나 탐욕스럽지 않은 일치 항목을 제거합니다. 위의 예에서 제공됩니다 $HOME/documents.

관련 기사도 참고하세요배쉬 해커 위키.

관련 정보