리눅스/LInux

[Linux] 쉘스크립트 exit 명령어 되지않을때

IT공부블로그 2022. 5. 6. 18:00
728x90
반응형

참조: https://stackoverflow.com/questions/19886797/exit-inside-parentheses-doesnt-exit-script

[[ $REPLY == [yY] ]] && (
	echo "" \
	&& echo -e "\033[36m"업데이트 시작"\033[0m" \
	&& echo "" \
	&& git pull origin develop \
	&& (
		echo -e "\033[36m"업데이트 완료"\033[0m" \
		&& echo ""
	) \
	|| ( 
		echo ""; echo -e "\033[31m"업데이트 실패"\033[0m"; exit 100 
	)
)\

위 코드의 경우  업데이트 실패의 exit 100이 동작하지않음

 

하위 쉘이라서 안된다고 확인하여 소괄호를 중괄호로 변경하니 정상동작

 

[[ $REPLY == [yY] ]] && {
	echo "" \
	&& echo -e "\033[36m"업데이트 시작"\033[0m" \
	&& echo "" \
	&& git pull origin develop \
	&& (
		echo -e "\033[36m"업데이트 완료"\033[0m" \
		&& echo ""
	) \
	|| {
		echo ""; echo -e "\033[31m"업데이트 실패"\033[0m"; exit 100 
	}
}\
728x90
반응형