`source .../settings.csh`는 `sh ./test.sh`에서 실행할 수 없습니다.

`source .../settings.csh`는 `sh ./test.sh`에서 실행할 수 없습니다.

setiin64.csh이 명령을 사용하여 Xilinx ise 파일을 얻고 싶습니다 source.

나는 가지고있다

source /home/xilinx/ise_14.5/14.5/ISE_DS/settings64.csh

다른 파일에서 .so 파일을 test.sh실행하고 싶습니다 .test.sh

sh ./test.sh 

그런데 이렇게 하면 Xilinx ISE 14.5 버전이 나오지 않습니다 which ise.

내가 명령을 실행하면

source /home/xilinx/ise_14.5/14.5/ISE_DS/settings64.csh

터미널에서 직접 잘 작동합니다.

답변1

setiin64.cshC-shell 스크립트가 C-shell과 호환 sh되지 않으면 셸 source /home/xilinx/ise_14.5/14.5/ISE_DS/settings64.csh에서 작동하지 않아야 합니다 sh. 하지만 당신이 그렇게 말하니까 나는 당신의 말을 받아들여야 해요.

sh test.sh해당 파일을 가져와 실행 하고 환경 변수가 포함될 것으로 예상하는 스크립트를 작성할 수 없습니다.현재의쉘 환경.

이 명령이 소스에 사용될 sh test.sh새 환경을 설정합니다 (아직도 이것이 실제로 작동할 것이라고 믿기 어렵습니다. 스크립트이기 때문입니다). 실행이 완료 되면 이 새 환경은 삭제됩니다. 여기에 설정된 모든 변수는 가장 바깥쪽 환경(셸 세션)으로 전송되지 않습니다.sourcesetiin64.cshcshtest.sh

당신은 할 수

source test.sh

하지만 이것이 바로 처음부터 수행하는 작업입니다. 대신 심볼릭 링크를 얻을 수도 있습니다 /home/xilinx/ise_14.5/14.5/ISE_DS/settings64.csh.

가장 좋은 해결책은 아마도 명령줄(또는 셸 초기화 파일 중 하나)에서 파일을 가져오는 것입니다.

관련 정보