연구 노트 : 세트 + 전자 사용량 설정 -e 쉘

연구 노트 : 세트 + 전자 사용량 설정 -e 쉘

https://blog.csdn.net/xiaofei125145/article/details/39345331/

오류가 발생하는 경우 -e # 종료하십시오 스크립트를 설정

각본 A

ccache가 존재하지 않는 경우 세트 + 전자 번호 bash는 스크립트의 구제하지 않습니다

B 스크립트

일반에 -e # 백을 설정 모드 "오류에 구제"

스크립트 C

 

이상으로, 스크립트 쉘,

때, 리턴 값이 0이 아닌 바로 전체 스크립트 종료가있는 경우 A와 C 스크립트 실행

A B 스크립트 반환에 표시되면 제로가 아닌 값은 다음 스크립트 C를 계속 실행합니다

 

-e 세트
-e 파라미터 설정 명령은 리눅스가 아니라 다음 온다 :
. "IF의 간단한 명령 상태 비-ZERO로 즉시 종료 종료"
즉 "를 설정 -e"코드가 나타납니다 후, 이벤트 반환 값은 0이 아닌 바로 전체 스크립트를 종료합니다. 어떤 사람들은 안전 코드를 확인하기 위해 고려에서,이 매개 변수를 사용하는 것을 좋아합니다. 하지만 가끔은,이 아름다운 마음은 심각한 문제가 발생할 수 있습니다.

실제 사례 :
스크립트 a.sh 사용 "설정 -e"의 시작, 정상적으로 실행할 수 있습니다. 몇 달 후 이상으로 인해 업그레이드하고 세 개의 스크립트 하둡 작업에 라인 증가하는 수요에 :
# / 빈 / bash에!
설정 -e를
...
는 DFS -rmr / 앱을 /home/work/.../hadoop /.../dir
/home/work/.../hadoop는 DFS -mkdir /app/.../dir
/home/work/.../hadoop는 DFS 저것 집어 넣어 file_1 /app/.../dir/
...
이 라인 하둡 명령 논리는 간단하다 : 클리어하고 HDFS에 새 디렉토리를 만들고, 나중에 사용하기 위해 로컬 디렉토리에 파일을 밀어 넣습니다. 이 라인은 혼자 수행 존재하지 않는 디렉토리를 삭제 제안 이외에, 명령 줄을 실행하고 문제는 파일이 여전히 지정된 장소에 푸시됩니다 없다.

전체 프로그램에 대한 첫 번째 스크립트의 실행,하지만 실패 뽑아, 리드 스크립트 종료를 호출 할 때, 심각한 결과를 야기. 그 이유는이 라인 반환 255 RMR,이 값은 캡처, 스크립트 종료의 직접적인 결과로 스크립트 "설정 -e"의 앞에, HDFS에 아직 디렉토리가 아니다.

새로운 코드 자체가 새로운 디렉토리를 생성 한 후 삭제하고, 문제가 아니라, 데이터 보안 작동을 보장 관용 삭제 명령 자체를 잘못 상당히 표준, 후속 명령의 정상적인 실행을 보장 할 수 있습니다. 사실은 스크립트의 수백 라인이 있다는 것을, 그리고 로직은 시간 코드 줄은, 개발자가 "세트 -e"매복이 스크립트를 기억하지 증가, 더 복잡합니다.

눈에 보이는 설정 "설정 -e는"스크립트 개발 프로세스에 도움이 될 수 있으며, 개발이 완료되면, 특히, 보안 위험을 매장 할 수있다 후자 스크립트를 업그레이드 할 수 있습니다.
----------------
면책 조항 :이 문서에 원래 문서 CSDN 블로거 "물이 강으로 떨어지"및 후속의 CC 4.0-SA 저작권 계약, 복제, 원본이 링크를 첨부하시기 바랍니다있다 문.
원본 링크 : HTTPS : //blog.csdn.net/xiaofei125145/article/details/39345331/

 

 

 

 

 

게시 80 개 원래 기사 · 원 찬양 38 ·은 40000 +를 볼

추천

출처blog.csdn.net/kuangben2000/article/details/104388545