쉘 스크립트에서 ##*는 무엇을 의미합니까? [복사]

쉘 스크립트에서 ##*는 무엇을 의미합니까? [복사]

스크립트:

text="//ABC/REC/TLC/SC-prod/1f9/20/00000000957481f9-08d035805a5c94bf"

echo ${text##*/}

여기서, 위의 두 줄의 스크립트 중 두 번째 줄은 무엇을 의미하나요?

답변1

이것은매개변수 대체 및/또는 확장. 링크에서:

${var#Pattern}

$var의 프런트 엔드와 일치하는 $Pattern의 가장 짧은 부분을 $var에서 제거합니다.

${var##Pattern}

$var의 프런트 엔드와 일치하는 $Pattern의 가장 긴 부분을 $var에서 제거합니다.

따라서 ${text##*/}텍스트에서 마지막 항목 이전의 모든 항목을 제거하십시오 /. 예를 들어 디렉터리의 기본 이름을 가져오는 것이 유용합니다.

(또한 ${var%Pattern}/ ${var%%Pattern}백엔드와 일치하는 패턴을 제거합니다 $var)

관련 정보