특정 명령을 호출한 후 bash 스크립트 실행이 중지되는 것을 방지하는 방법은 무엇입니까?

특정 명령을 호출한 후 bash 스크립트 실행이 중지되는 것을 방지하는 방법은 무엇입니까?

애플리케이션을 배포하기 위해 bash 스크립트를 생성하려고 합니다. 배포하기 전에 Maven을 사용하여 애플리케이션을 빌드해야 합니다. 문제는 Maven 빌드가 완료되면 다음 명령이 호출되지 않는다는 것입니다. Maven이 추가 실행을 종료하기 위해 신호를 보내는 것 같습니다.

예를 들어, 다음 스크립트에서는 Hello world표준 출력이 작성되지 않습니다.

#!/bin/sh

exec mvn -DskipTests -Darguments=-DskipTests clean install

echo "Hello world"

이 제한을 우회할 수 있는 방법이 있나요?

답변1

execMaven을 호출하는 명령줄에서 제거하면 됩니다.

exec명령은 쉘을 실행 중인 명령으로 대체하므로 쉘은 더 이상 존재하지 않으며 해당 행 이후에는 아무것도 실행되지 않습니다(명령 시작이 실패하지 않는 한).

쉘을 원한다면 exec외부 명령을 생성하는 데 사용하지 마십시오.

관련 정보