현재 디렉토리에 대한 POSIX One-Liner - ShellCheck를 통과하도록 시도

현재 디렉토리에 대한 POSIX One-Liner - ShellCheck를 통과하도록 시도

POSIX 호환 스크립트 및 전체 경로 가져오기에 대한 이 토론의 mklement0에서 한 줄입니다. ShellCheck가 실패했습니다. 공간을 삭제하면 더 이상 작동하지 않게 됩니다.
https://stackoverflow.com/questions/29832037/how-to-get-script-directory-in-posix-sh

dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
             ^-- SC1007: Remove space after = if trying to assign a value (for empty string, use var='' ... ).

CDPATH=ShellCheck 패스에서 결과를 제거해 도 여전히 작동하는 것 같지만...

CDPATH= 접두사는 원래 명령에서 > /dev/null을 대체합니다. $CDPATH는 빈 문자열로 설정되어 cd가 아무것도 에코하지 않도록 합니다.

꼭 필요한 것 같습니다. 그렇다면 이 패스를 ShellCheck로 만들 수 있는 방법이 있나요? 아니면 그냥 무시하나요?

답변1

예, 인용된 null 값을 지정할 수 있습니다.

dir=$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd)

ShellCheck가 제안한 대로:

(빈 문자열의 경우 var='' ...을 사용하십시오.)

관련 정보