2010-08-18 1 views

답변

217

set +e. 그래, 뒤로 set -으로 쉘 옵션을 사용 설정하면 set +을 사용하여을 사용 중지합니다. 역사적인 건포도, donchanow.

+0

대단히 감사합니다. 매뉴얼 페이지 (http://www.faqs.org/docs/bashman/bashref_56.html)의 맨 마지막 줄에있는 내용으로 끝까지 읽지 않았습니다. –

+0

bash 매뉴얼은 엄청나게 크며 사실입니다. (FYI, 당신이 새 것처럼 보입니다. 귀하의 질문에 가장 잘 맞는 답안 아래에있는 체크 마크를 클릭하는 것이 완료되었습니다. 이것을 "수락"이라고합니다.) – zwol

+0

그리고'set [--abefhkmnptuvxBCHP] [- o 옵션] [인수 ...]'정말 오해의 소지가 있습니다. 나는 단순히 언두가 다른 내장 명령자에 의해 행해지고, 설정되지 않았으며 아무것도 얻지 못했다고 가정했다. 흥미로운 것은 bash에서'set'과'unset'은 반대가 아니지만, 현재 제가 배시 프로그래밍에 대해 거의 알지 못한다는 것을 인정합니다. –

16
  • + 대신 -를 사용하면이 플래그가 꺼집니다.

Source

55

set +e/set -e 당신이 그것을 오버라이드 (override) 할 때마다 사용하는 손재주가 될 수 있습니다. 나는 더 간단한 해결책을 발견했다. 당신은 키 입력을 저장할와 비밀 조금되는 괜찮다면,

command_that_might_fail_but_we_want_to_ignore_it || true 

또는 :

대신 다음과 같이 그 일의 :

set +e 
command_that_might_fail_but_we_want_to_ignore_it 
set -e 

당신은 이런 식으로 작업을 수행 할 수 있습니다 :

command_that_might_fail_but_we_want_to_ignore_it || : 

희망이 있습니다.

+11

':'의 역사에 대해 궁금해하고 제 대답을 찾았습니다. (http://stackoverflow.com/a/3224910/1094541) 다른 사람이 호기심이있는 경우에 대비해서. – 3cheesewheel

+2

이것은 실행중인 명령의 리턴 코드에 대해 신경 쓰지 않는 경우에만 적용됩니다. – Isaac