나는 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