스크립트에서 파일 가져오기

스크립트에서 파일 가져오기

tcsh 스크립트로 파일을 얻고 싶습니다. 코드에서:

#!/bin/tcsh

unsetenv LD_LIBRARY_PATH
source $1    
echo $LD_LIBRARY_PATH > temp_file

예상되는 결과:source 명령을 사용하여 스크립트에서 설정한 환경 변수는 임시 파일에 인쇄됩니다.

실제 결과:소스 파일은 정상적으로 실행되지만 LD_LIBRARY_PATH변수는 여전히 비어 있습니다.

작동시키는 방법에 대한 아이디어가 있습니까?


폴리스티렌 tcsh확실히 내가 선택한 쉘은 아니지만 tcsh에서 사용하고 싶은 많은 환경 변수를 설정하는 작업 스크립트가 있습니다. ( 매번 쉘을 다시 작성하는 bash것 외에) 가장 쉬운 방법은 소스 코드를 가져오고 인쇄하는 것입니다. tcsh변수를 파일에 추가한 다음 일부 쉘 마법을 사용하여 모든 것을 bash로 되돌립니다.

답변1

OpenBSD에서 csh를 사용해 보았습니다. 제 생각엔 제 예가 tcsh에도 적용되는 것 같아요.

파일 test.csh:

#!/bin/csh
source data.csh
echo $VARIABLE

파일데이터.csh

#!/bin/csh
setenv VARIABLE 1234

결과:

$ csh test.csh
1234

답변2

추가 참조를 위해 이 방법은 작동하지만 shebang에서 tcsh 경로로 사용하면 안 됩니다.

 #!/bin/tcsh 

대신 "env" 경로를 사용하십시오.

 #!/usr/bin/env tcsh

tcsh가 다른 경로에 설치된 시스템에 유연성을 허용합니다. 예를 들어, "tcsh"가 "/usr/bin/tcsh"에 설치된 경우 전자는 실패하지만 후자는 계속 작동합니다.

관련 정보