2015-02-04 2 views
0

bash 변수를 사용하는 많은 쉘 스크립트로 작업합니다. 예를 들어 다음과 같은 스크립트가있을 수 있습니다.변수가 정의되지 않은 경우 Bash - force 오류

option1="-blah_blah" 
option2="-yada_yada" 
option3="-whatever" 
... 
option99="-something_else" 

./myCommand "$option1 $option12 $option97 $option45" 

다양한 엔지니어링 테스트를 실행하기 위해 끊임없이 마지막 명령을 편집하고 있습니다. 문제는 때때로 변수가 잘못 표기됩니다. 이 경우 Bash는 단순히 빈 문자열로 대체하고 내 명령은 잘못된 것을 자동으로 수행합니다.

정의되지 않은 변수를 사용하려고하면 Bash가 예외를 throw 할 수 있습니까?

+0

변수의 철자를 잘못 입력해도 오류를 방지하지 못하기 때문에 이것이 어떻게 그 질문과 중복 될 수 있는지 잘 모르겠습니다. – rlbond

답변

3

사용 :

set -e # 오류가 발생하면 중지하십시오. 이것이 기본값이 아니라고 나는 믿을 수 없다.

set -u # 초기화되지 않은 변수를 사용하려고하면 중지하십시오.

+0

'set -e'는 여러분이 좋아할만큼 유용하지 않으며 "흥미로운"방법으로 깨질 수 있으므로 원하는만큼 저장할 수 없으며 때로는 원하는 것을 적극적으로 사용할 수 없습니다. 'set -u' 역시 마찬가지로 다소 성가고, 항상 원할 때 도움이되는 것은 아닙니다 (그리고 언젠가는 당신이 원하는 것보다 더 엄격합니다). 기록만을 위해서. –

+0

[BashFAQ # 105] (http://mywiki.wooledge.org/BashFAQ/105)를 읽어라. 그러면'set -e'가 기본값이 아닌 이유에 대해 아주 잘 알 것이다. POSIX sh 호환성 "으로 충분합니다). –

관련 문제