나는 SunOS 시스템을 가지고 있는데, 이는 단순한 것으로부터 이러한 상황을 복잡하게 만든다.현재 디렉토리의 유닉스 환경 설정
다른 경로에서 실행되는 일부 스크립트 (어쩔 수없는)가 있고 시스템에 경로에 "시스템 환경"이있는 경로 구조가 있습니다. 경로에서 경로를 추출 할 수 있습니다. 이전에 호출되었거나 다른 모든 스크립트에서 제공되어 환경을 확보하고 몇 가지 다른 공통 변수를 설정하는 간단한 스크립트가 있습니다. 문제는이 스크립트를 호출 할 수있는 3 가지 영역이 있으므로 경로에서 환경을 제대로 추출하지 못한다는 것입니다. 여기
있을 수 3 개 경로의 간단한 예입니다
- /dir1/dir2/${ENV}/bin/script1.ksh
- /DIR1/DIR2/$ {ENV}/서비스/SERVICE_NAME/script2.ksh
- /dir1/dir2/${ENV}/services/service_name/log/script3.ksh
나는 얻을 수있을 것입니다, 1 스크립트가하고 싶습니다 $ {ENV}은 현재 전략 인 3 단계와 반대 경로 중 어느 경로가 제공되었는지에 관계없이 parate 것들. 여기
내가 현재있는 최초 $ {ENV}을 얻는 방법은 다음과 같습니다
#!/bin/ksh
export BASE_DIR=${0%/*/*}
export ENV=${BASE_DIR##*/}
2 스크립트 :
#!/bin/ksh
export CURR_DIR=$(cd -- "$(dirname -- "$(command -v -- "$0")")" && pwd)
export BASE_DIR=${CURR_DIR%/*/*}
export ENV=${BASE_DIR##*/}
내가 언급 한 바와 같이이, 이것은 SunOS의 시스템이므로이 제한 오래된있다 버전의 KSH. 세트 -A 또는 대체가 없습니다.
스크립트의 반복성을 제한하는 최상의 전략에 대한 아이디어가 있습니까?
감사합니다.