두 개의 스크립트가 있는데 첫 번째 부분은 똑같이 보입니다. 이 부분의 기능은 스크립트가 실행될 머신을 식별하고 이에 따라 몇 가지 변수를 설정하는 것입니다.하나의 쉘 스크립트에서 다른 쉘 스크립트로 변수를 내 보냅니다.
ENV=`echo $LOGNAME | cut -c1-8`
if [ $ENV = "vrt3400b" ]
then
echo "Using TEST specific settings."
NAME_PREFIX="tst"
GROUP_NUMBER=`echo $USER | cut -c4-5`
GROUP_NUMBER_SUFFIX=00`echo $USER | cut -c8-9`
...
elif [ $ENV = "vrp3400a" ]
then
echo "Using PROD specific settings."
NAME_PREFIX="prd"
...
문제는 스크립트의 수가 증가하면 작은 변경 사항을 유지하는 데 소요되는 시간이 매우 오래 걸리는 것입니다.
위의 부분을 추출하여 별도의 스크립트에 넣은 다음 다른 모든 스크립트에서 호출합니다. 그러나 변수는 물론 다른 스크립트로 전달되지 않습니다. 그래도 export NAME_PREFIX="tst"
을 시도했지만 작동하지 않았습니다.
아무도 나에게 문제를 해결하는 데 사용해야하는 접근법에 대한 힌트를 줄 수 있습니까?
나는 환경을 식별하는 것에 대해 생각하고 파일에 속성을 쓰고 다른 스크립트로 전달할 수 있습니다. 그러나보다 직설적 인 접근이 있어야하는 것으로 보인다.
// 마이크
초기화 스크립트 (1.sh)
응용 프로그램 스크립트? –