반응형
쉘에서 마지막으로 캐치 작성 시도
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 tmp
문 trap
은 펼쳐가 종료 될 때 항상 실행 가능한 "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
반응형
'ProgramingTip' 카테고리의 다른 글
생성기 / 반복자에서 항목 수를 계산하는 가장 짧은 방법은 무엇입니까? (0) | 2020.12.06 |
---|---|
iOS로 라이선스에서 이미지로드 (0) | 2020.12.06 |
SQL 서버에서 저장 프로 시저의 예약 된 실행 (0) | 2020.12.06 |
DLL에 의해 노출 된 모든 기능을 찾는 방법이 있습니까? (0) | 2020.12.06 |
SQL Server 데이터베이스의 소유자를 변경 한 비용은 무엇입니까? (0) | 2020.12.06 |