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"에 설치된 경우 전자는 실패하지만 후자는 계속 작동합니다.