setenv가 tcsh에서 작동하지 않습니다

setenv가 tcsh에서 작동하지 않습니다

새로 구입한 CentO에 프로그램을 설치하려고 합니다. 설치에 필요합니다 setenv. tcsh 쉘에서도 분명히 작동하지 않습니다.

누구든지 나에게 조언을 해줄 수 있습니까?

[Anna@anna xd-demo] ./setup.csh

Configuring shell for the XD2006 :
./setup.csh: line 7: setenv: command not found
./setup.csh: line 8: setenv: command not found
./setup.csh: line 9: setenv: command not found
./setup.csh: line 10: setenv: command not found
./setup.csh: line 11: syntax error near unexpected token `('
./setup.csh: line 11: `set path=( $XD_ROOT/bin $XD_ROOT/lib/xd $XD_ROOT/lib/xdgraph $path )'
[Anna@anna xd-demo]$ echo $shell
/bin/tcsh

답변1

스크립트는 실제로 tcsh에 의해 실행되지 않습니다. tcsh에서 명령을 실행했지만 ./setup.csh자체 프로세스에서 실행된 별도의 명령이었습니다. 당신이 보여준 것으로부터 스크립트가 tcsh에서 실행될 것이라고 생각할 이유가 없습니다. setenv일부 다른 인터프리터가 스크립트를 실행 중이므로 명령을 찾을 수 없습니다. 추가 증거로 오류 메시지 형식은 bash, dash 및 ksh의 형식과 일치하지만 tcsh의 형식과 일치하지 않습니다.

이것은 스크립트의 버그입니다. 그것은 다음으로 끝나야 한다셰르본스크립트가 설계된 인터프리터(셸)를 나타내는 줄입니다. tcsh 스크립트는 다음 줄로 시작해야 합니다.

#!/usr/bin/env tcsh

이 줄을 추가하세요(첫 번째 줄이어야 합니다. 파일에는 Windows 줄 끝이 있을 수 없으므로 Windows 편집기 또는 Linux 편집기를 사용하는 경우 주의하세요). 또는 파일을 편집하지 않으려면 tcsh를 명시적으로 호출할 수 있습니다.

tcsh ./setup.csh

어느 쉘에서나 이 작업을 수행할 수 있으며, 원하지 않는 경우 tcsh를 대화식으로 사용할 필요가 없습니다.

관련 정보