다른 디렉토리에 파일을 가져오는 Bash 명령이 있습니까?

다른 디렉토리에 파일을 가져오는 Bash 명령이 있습니까?

나는 bash 스크립트 세트를 가지고 있으며 각 스크립트의 시작 부분에서 선택될 "setup.sh" 스크립트에 몇 가지 일반적인 셸 옵션과 변수 선언을 넣고 싶습니다.
내 디렉토리 구조는 다음과 같습니다.

├── includes
│   └── setup.sh
└── server_config
    ├── build_server_core.sh
    ├── install_fail2ban.sh

스크립트가 다른 시스템이나 환경에서 실행될 수 있으므로 단순히 하드코딩된 경로를 사용할 수는 없습니다.setup.sh

source내가 실행 중인 디렉토리와 다른 디렉토리에 있는 스크립트에 대한 한 줄 명령이 있습니까?

답변1

먼저 스크립트 자체의 디렉토리를 가져온 다음 다음과 같은 상대 경로를 사용하십시오.

DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
source "$DIR/../includes/setup.sh"

올바른 디렉토리를 찾는 방법에 대한 자세한 내용은 다음을 확인하세요.https://stackoverflow.com/questions/59895

답변2

한 줄로: 이중 중첩 디렉터리 이름도 상위 항목을 가져옵니다.(영감여기)

source $( dirname $( dirname "${BASH_SOURCE[0]}" ) )/_helperlib.sh

답변3

echo "$( echo $(cd ../ && pwd) )/includes/setup.sh"

또는

ParDir="$( echo $(cd ../ && pwd) )/includes/setup.sh"

echo $ParDir

관련 정보