${PATH#:*} 및 ${PATH##:*}의 출력

${PATH#:*} 및 ${PATH##:*}의 출력

내 시스템의 PATH 변수 내용은 다음과 같습니다.

> echo $PATH
/c/Users/USER/bin:/mingw32/bin:/usr/local/bin:/usr/bin:/bin:/mingw32/bin:/usr/bin:/c/Users/USER/bin:/c/ProgramData/Oracle/Java/javapath:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Program Files/Broadcom/Broadcom 802.11 Network Adapter/Driver:/c/Program Files/Toshiba/Bluetooth Toshiba Stack/sys:/c/Program Files/Internet Explorer:/c/Program Files/Common Files/lenovo/easyplussdk/bin:/c/Program Files/Skype/Phone:/cmd:/usr/bin/vendor_perl:/usr/bin/core_perl

이제 ${variable## pattern}처음부터 가장 긴 일치 패턴을 제거하고 나머지를 반환합니다.

따라서 if는 무엇이든 arg=${PATH##:*}으로 시작하고 뒤에 오는 가장 긴 패턴과 일치해야 합니다 :. echo $arg반환해야/c/Users/USER/bin

그러나 echo $arg내 시스템에 반환된 출력은 다음과 같습니다.

/c/Users/USER/bin:/mingw32/bin:/usr/local/bin:/usr/bin:/bin:/mingw32/bin:/usr/bin:/c/Users/USER/bin:/c/ProgramData/Oracle/Java/javapath:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Program Files/Broadcom/Broadcom 802.11 Network Adapter/Driver:/c/Program Files/Toshiba/Bluetooth Toshiba Stack/sys:/c/Program Files/Internet Explorer:/c/Program Files/Common Files/lenovo/easyplussdk/bin:/c/Program Files/Skype/Phone:/cmd:/usr/bin/vendor_perl:/usr/bin/core_perl

마찬가지로 echo ${PATH#:*}동일한 출력을 반환합니다 .

/c/Users/USER/bin:/mingw32/bin:/usr/local/bin:/usr/bin:/bin:/mingw32/bin:/usr/bin:/c/Users/USER/bin:/c/ProgramData/Oracle/Java/javapath:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Program Files/Broadcom/Broadcom 802.11 Network Adapter/Driver:/c/Program Files/Toshiba/Bluetooth Toshiba Stack/sys:/c/Program Files/Internet Explorer:/c/Program Files/Common Files/lenovo/easyplussdk/bin:/c/Program Files/Skype/Phone:/cmd:/usr/bin/vendor_perl:/usr/bin/core_perl 

왜 이런 일이 발생하는지 이해하도록 도와주세요. 감사해요

답변1

glob 태그를 잘못된 위치에 넣었습니다 . 왼쪽 부분을 제거하기 위해 (또는 )를 사용하고 있으므로 *if를 앞에 넣으십시오 .:###

${PATH#*:}  ## Non-greedy
${PATH##*:}  ## Greedy

관련 정보