2010-02-25 5 views
29

난 내가 물건을 시작하기 전에 특정 환경 변수가 설정되어 있는지 확인해야합니다 몇 CSH 스크립트를 가지고, 그래서 나는 이런 종류의 수행 타이핑의 많은입니다csh 환경 변수가 존재하는지 확인하는 관용구?

if ! $?STATE then 
    echo "Need to set STATE" 
    exit 1 
endif 

if ! $?DEST then 
    echo "Need to set DEST" 
    exit 1 
endif 

합니다. 환경 변수가 이미 설정되어 있는지 여부를 확인하기위한보다 세련된 관용구가 있습니까?

주 :

  • This question

    은 매우 유사하지만, 특히 bash는 솔루션에 대해 묻습니다.
  • 저는 저주받은 사람, 저주받은 사람, 무서운 사람 또는 배시가 좋기 때문에 csh에서 멀어 지라고 조언하는 사람들을 찾고있는 것이 아닙니다. 나는 특히 내가 지금 사용하고있는 것보다 더 우아한 해결책에 관심이있다.
+0

[이 새로운, 비슷한 질문] (http://stackoverflow.com/questions/13343392/how-to-check-if-an-environment-variable-is- unset-or-the-empty-stri)는 if/else/endif가 불가능한 표현 컨텍스트를 확인하는 방법을 보여줍니다. – cfi

답변

19

난 당신이 (그렇지 않으면 변수가 설정되어 있으면 1로 평가합니다 $?VAR 구문을 사용하여 조건, 0과 if 문을)하고있는 방법은 아마 않는 가장 관용적 csh 구조라고 생각합니다 당신이 원하는.

-4

는 다음과 같은 시도 :

[ -z STATE ] && echo "Need to set STATE" 

[ ! -z DEST ] && echo "Need to set STATE" 
+1

여기에 말하려고하는 것이 명확하지 않습니다. 논리의 반대편 조각들은 동일한 메시지를 인쇄합니다. –

+1

어쨌든 이것은 csh가 아닙니다. – supergra

관련 문제