Volume Library에서 this app의 pvm2raw 유틸리티를 실행하고 싶습니다. 내 우분투 10.10 터미널에 csh build.sh tools
를 입력 할 때csh 오류 : HOSTTYPE : 정의되지 않은 변수
나는 다음과 같은 오류 얻을 :
는 이유는 무엇입니까?
Volume Library에서 this app의 pvm2raw 유틸리티를 실행하고 싶습니다. 내 우분투 10.10 터미널에 csh build.sh tools
를 입력 할 때csh 오류 : HOSTTYPE : 정의되지 않은 변수
나는 다음과 같은 오류 얻을 :
는 이유는 무엇입니까?
C 쉘은 정의되지 않은 변수를 참조하기를 좋아하지 않습니다. 따라서 스크립트를 실행하기 전에 $HOSTTYPE
을 설정하거나 $HOSTTYPE
이 올바르게 결정되도록 스크립트를 수정해야합니다.
Bourne 쉘 및 파생 제품은 정의되지 않은 변수를 대부분 빈 문자열로 취급합니다.
제안 : 프로그래밍을 위해 C 쉘을 사용하지 마십시오. 참조 : Csh Programming Considered Harmful.
.sh
파일을 csh
과 함께 시작 하시겠습니까?
.csh
으로 csh 스크립트를 명명 할 필요는 없지만 .sh
파일은 일반적으로 Bourne 또는 bash 쉘 스크립트를 의미합니다.
또한 scrip 이름은 빌드 프로세스를 의미합니다. 빌드는 일반적으로 Solaris, AIX, HP 등의 오래된 유닉스 시스템의 Bourne (sh
) 및 Linux의 경우 bash
과 같은 기본 쉘로 수행됩니다.
직접 build.sh
을 실행해야합니다 (스크립트를 직접 작성하지 않았거나 명령을받지 않은 경우). 앞에 쉘이 없어도 실행 가능합니다.
조나단 레플러 (Jonathan Leffler)는 모두 사실이라고 말합니다. 당신은 build.sh
쓰기 않았거나 당신이 제공하는 스크립트를 사용하고,
if (! $?HOSTNAME) then
setenv HOSTNAME `hostname`
endif
처럼 사용할 수 있습니다 '표기법'$?varName
와 CSH가 비어 변수를 허용 않습니다 추가 할 수?
자신의 csh 스크립트를 작성한 경우 코드 블록을 사용하여 의 모든 변수에 대한 기본값을 확인하고 제공하십시오. 이를 달성하는 다른 방법은 source $HOME/.env_file
과 같이 스크립트에 필요한 모든 변수 할당을 나열하는 $HOME/.env_file
을 만들어야합니다.
제공된 스크립트를 사용하는 경우 우분투의 은 실제로 bash 스크립트와 매우 비슷합니다. 그 스크립트의 첫 번째 줄을 보시오. #!/bin/bash
(또는 비슷한)이 맞는지 확인하십시오. 실행 스크립트가 실행되도록 설정되어 있다면 ls -l build.sh
, 줄 앞쪽에 -rwxr-xr-x
과 같은 것을보아야합니다. 'x가 열쇠입니다. 비트. 그렇지 않다면 chmod 755 build.sh
가 해결할 것입니다. 권한이 실행을 허용하면 ./build.sh
을 실행하십시오.
이 정보가 도움이되기를 바랍니다.
나 역시 비슷한 문제에 직면했다.
시험 : tcsh 빌드.쉬
HOSTTYPE
그것은 man bash
에 설명되어 비 POSIX 배쉬 확장
이며, 우리가 POSIX 다운로드하여 grepping하여 언급하지 않는 것을 확인할 수 있습니다 따라서 Is there a listing of the POSIX API/functions?
, 그것은이다 변수가 csh
에 정의되어 있지 않은 것은 놀라운 일이 아니며 오류가 발생합니다.
도 참조하십시오. Detect the OS from a Bash script