ProgramingTip

쉘에서 마지막으로 캐치 작성 시도

bestdevel 2020. 12. 6. 21:51
반응형

쉘에서 마지막으로 캐치 작성 시도


Java try catch와 같은 Linux bash 명령이 있습니까? 아니면 리눅스 셸이 계속 계속?

try {
   `executeCommandWhichCanFail`
   mv output
} catch {
    mv log
} finally {
    rm tmp
}

음, 성 :

{ # your 'try' block
    executeCommandWhichCanFail &&
    mv output
} || { # your 'catch' block
    mv log
}

 rm tmp # finally: this will always happen

귀하의 예에 따르면 실행이 종료되는 방식에 항상 임시 파일을 삭제하는 것과 관계없이 작업을 시도하는 것입니다. Bash에서이를 수행 한 후 trap내장 명령을 사용하여 EXIT신호 를 트랩하십시오 .

#!/bin/bash

trap 'rm tmp' EXIT

if executeCommandWhichCanFail; then
    mv output
else
    mv log
    exit 1 #Exit with failure
fi

exit 0 #Exit with success

rm tmptrap은 펼쳐가 종료 될 때 항상 실행 가능한 "tmp"파일은 항상 삭제를 시도합니다.

최적의 상황이 될 수 있습니다. 신호 이름 만있는 트랩에 대한 호출은 신호를 처리합니다.

trap EXIT

자세한 내용은 bash 매뉴얼 페이지를 참조하십시오. man bash


mv 두 개의 매개 변수를 사용하여 파일의 내용을 분류하고 싶을 수 있습니다.

echo `{ execCommand && cat output ; } || cat log`
rm -f tmp

참고 URL : https://stackoverflow.com/questions/15656492/writing-try-catch-finally-in-shell

반응형