여기에 bash 스크립트가 있습니다.
$GOPATH/
src/
build.sh
build.sh에는 다음이 있습니다.
export GOPATH="$(cd $(dirname "$BASH_SOURCE") && pwd)"
build.sh의 포함 디렉터리를 가져오는 더 짧은 방법이 있나요?
답변1
스크립트가 있는 디렉토리를 얻으려면 다음 명령을 사용하십시오.
readlink -f $(dirname $0)
Bash 매뉴얼 페이지에 명시된 대로 $0
파일 이름을 설정합니다.
readlink -f
이 디렉터리의 절대 경로를 가져옵니다.
답변2
BASH_SOURCE 아이디어를 확장하여 절대 경로가 포함되어 있는지 확인하세요. 그렇다면 직접 사용하고, 그렇지 않으면 앞에 PWD를 추가하세요. 그런 다음 뒤에 오는 슬래시와 그 뒤의 모든 항목을 제거하고 포함된 디렉터리만 남겨 둡니다.
case ${BASH_SOURCE[0]} in
( /* )
p=${BASH_SOURCE[0]}
;;
( * )
p=${PWD}/${BASH_SOURCE[0]}
;;
esac
p=${p%/*}
printf "%s\n" "$p"