2010-03-10 3 views
0

Solaris에서 간단한 csh 스크립트를 실행할 때 이상한 문제가 있음을 발견했습니다.csh 스크립트가 envirionment 변수를 상속합니까?

#!/bin/csh 
echo $LD_LIBRARY_PATH 

이 스크립트를 test이라고합시다. 내가 이것을 실행할 때 :

shell> echo $LD_LIBRARY_PATH 
shell> /usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/lib:/my_app/lib 
shell> ./test 
shell> /usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/lib 

그들은 $ LD_LIBRARY_PATH에 대해 완전히 다른 값을 출력합니다. 나는 이유를 알 수 없다. (내 리눅스 머신에서는 괜찮아.)

고마워!

+0

그 결과를 ... – ghostdog74

+0

그건 그렇고, 그'#!/bin/csh' – ghostdog74

+0

결과는 – solotim

답변

1

$HOME/.cshrc$LD_LIBRARY_PATH을 설정합니까?

You really shouldn't 당신이 경우에, 그것은 종종 단지 소프트웨어를 나누기하지만 #!/bin/csh -f에 스크립트의 첫 줄을 변경하면 스크립트가 실수를 다른 사용자로부터 당신을 보호, 시작에 .cshrc 파일을 읽을 수 없습니다 원인이됩니다 때문이다.

+0

감사합니다! 나는 그것에 대해 생각해야한다. – solotim

0

대화 형 쉘이 sh/ksh 계열에있는 경우 LD_LIBRARY_PATH를 "set"을 사용하여 설정했지만 내보낼 수는 없습니다. 이 경우 새 값은 일반 변수처럼 설정되지만 환경으로 내보내지지는 않습니다. 그러나 스크립트가 변수를 다시 초기화 할 가능성이 큽니다.

대화식 셸에서 내 보낸 환경을 덤프하여 확인하려면 "env"명령을 사용할 수 있습니다.

+0

문제가 해결되었습니다. 어쨌든 고마워! – solotim

관련 문제