쉘 스크립트가 있는데 변수 값에 따라 종료하고 싶습니다 ERROR_COUNT
. 난 쓸수있다
if [ ${ERROR_COUNT} -gt 0 ]
then
echo "Exiting unsuccessfully";
exit 1;
fi
echo "Exiting successfully";
exit;
또는
if [ ${ERROR_COUNT} -gt 0 ]
then
echo "Exiting unsuccessfully";
exit 1;
else
echo "Exiting successfully";
exit;
fi
이 두 가지 방법에 문제가 있나요?
답변1
어떤 일이 일어날지에 관해서는 두 가지 분기 작성 방법 사이에 기술적인 차이가 없습니다. 스타일과 개인 취향의 문제입니다.
else
일부 개발자는 첫 번째 분기가 종료되는 경우 if 문의 분기에서 무조건 종료되는 것을 좋아하지 않습니다.
코드를 다음과 같이 작성할 수 있습니다.
if [ "$ERROR_COUNT" -ne 0 ]; then
echo 'There were errors' >&2
exit 1
fi
# echo 'No errors' >&2
제거된 세미콜론, 인용된 변수 확장 및 제거된 마지막 확장 exit
(스크립트 끝에 암시적)을 참고하세요. (적어도 나에게는) 더 명확하기 때문에 테스트를 -ne 0
다음 으로 변경했습니다.-gt 0
또한 두 가지 진단 메시지의 출력을 변경하여 표준 오류 스트림으로 이동하도록 했습니다(그리고 사용자에게 더 유용한 방식으로 개선했습니다). echo
성공적인 실행 외에 보고할 것이 실제로 없기 때문에 마지막 항목이 있어야 하는지 여부는 논쟁의 여지가 있습니다.