2011-08-04 2 views
0

ShellScript Unix에서 놀기 시작합니다. 어쩌면 바보 같은 질문 일 수 있습니다. 그 경우 사과드립니다.간단한 bash 셸 스크립트 종료로 이상한 동작이 발생했습니다.

코드에서 불리한 상황을 적절하게 해결하기 위해 종료 코드를 처리하려고했는데,이를 위해 유닉스 종료 동작을 이해할 수있는 코드 스 니펫을 만들었습니다. 여기에 그것이있다 :

일단 코드가 호출되면 (그리고 종료 됨) 나는 bash 프롬프트로 돌아 간다는 것을 이해했다. 그러나, 종료 명령은 또한 bash를 떠나는 것 같습니다. 정상입니까? 어쩌면 내 개발 환경과 관련이 있을까요? 여기

bash-3.00$ . errtest.sh 
Finishing with error! 
$ echo $? 
1 
$ bash 
bash-3.00$ which bash 
/usr/bin/bash 

... 메시지입니다 참고로, 나는 반환 및 bash는 위치를 추가했습니다. 희망이 도움이됩니다.

미리 감사드립니다.

답변

4

이것은 현재 환경에서 (. 명령을 사용하여) 스크립트를 사용하고 있기 때문입니다. 스크립트 파일에 필요한 권한을 부여하고 다음과 같이 그것을 실행하여

bash ./errtest.sh 

또는 : 중 하나를 사용하여 스크립트를 실행하십시오

chmod u+x ./errtest.sh 
./errtest.sh 
+0

우수함! 이것이 바로 문제의 해결책입니다. @Dimitre Radoulov. –

+0

실제로 .. 교부금 이외에, 나는 또한 스크립트를 잘못 부르고 있었다. 슬래시없이 전화를 걸면 여전히 bash없이 프롬프트로 돌아옵니다. 그래서 ... 항상 슬래시를 사용해야합니다. 설명 주셔서 감사합니다! –

+0

답변을 알면 그 이유를 쉽게 알 수 있습니다. 다른 사람들이 같은 질문에 빠지면 참고 목적으로 여기에 추가하겠습니다 : http://stackoverflow.com/questions/6331075/why-do-you-need-dot-slash-before-script-name-to -run-it-in-bash –

관련 문제