다른 csh 스크립트를 소스로 하는 tcsh 스크립트를 호출하여 환경 변수를 설정하는 방법

다른 csh 스크립트를 소스로 하는 tcsh 스크립트를 호출하여 환경 변수를 설정하는 방법

이 파일을 내부에 소싱하는 .csh다른 환경 변수를 사용하여 환경 변수를 설정할 수 없습니다 ..tcsh

  • 이는 환경 변수를 설정하지 않습니다.
    $PERC_PATH/bin/runperc.csh ...<some arguments>
    
  • 반면에 환경 변수는 다음과 같이 설정됩니다.
    source $PERC_PATH/bin/runperc.csh ..<some arguments>
    


둘 다 실행 가능하고 shebangs는 /usr/bin/csh이며 그 안에 runperc.csh소스가 있습니다.perc_setup.csh

source $PERC_PATH/perc_setup.csh
  • perc_setup.csh포함된 명령 setenv과 기타 명령:
    setenv MGC_RVEDB_DIR {$PERC_PATH}/setup:{$HOME}
    


source 스크립트 경로를 명시적으로 지정하지 않고도 터미널에서 환경 변수를 어떻게 설정합니까 ?

답변1

환경 변수는 외부 실행 파일에서 셸로 "상향"으로 전파될 수 없습니다. csh 스크립트로 설정해야 하는 경우~해야 한다 source해당 스크립트 – 원하는 경우 별칭 뒤에 '소스'를 숨깁니다.

alias perc 'source $PERC_PATH/bin/runperc.csh'

몇 가지 대안이 있습니다. 예를 들어 부모가 평가할 수 있도록 스크립트 출력 환경 변수를 stdout으로 만드는 것입니다. 그러나 이 방법은 훨씬 더 장황하며 여전히 부모 셸에서 직접 코드를 실행해야 합니다.

관련 정보