Bash: 절대 경로보다 높은 경로 정의

Bash: 절대 경로보다 높은 경로 정의

다음 디렉토리에서 스크립트를 실행하고 있습니다.

a/b/c/d/script.bash

이와 같은 환경 변수 projroot를 만들어야 합니다.

  script=$(readlink -f $0) # Absolute path to this script.
  export projroot=$(dirname $(dirname $script)) #This points to the absolute path

대신 을 가리키 projroot도록 어떻게 정의합니까 ?projroota/ba/b/c

답변1

중첩을 사용 dirname하거나 다음을 사용할 수 있습니다.Bash 매개변수 확장그리고 realpath.

실제 경로 사용:

script=$(readlink -f "$0")
export projroot=$(realpath -mL "${script}/../../..")

Bash 매개변수 확장을 사용합니다.

script=$(readlink -f "$0")
export projroot="${script%/*/*/*}"

관련 정보