전체 스크립트를 종료하기 위해 bash 함수에서 "exit 1"문을 사용했는데 제대로 작동했습니다.
function func()
{
echo "Goodbye"
exit 1
}
echo "Function call will abort"
func
echo "This will never be printed"
그러나 다음과 같이 호출하면 작업을 수행하지 않는다는 것을 깨달았습니다.
res=$(func)
나는 내가 서브 쉘을 생성했고 "exit 1"이 기본 서브 쉘이 아니라 그 서브 쉘을 중단한다는 것을 이해합니다 ....
그러나 호출 방법에 관계없이 전체 실행을 중단하는 함수를 작성하는 방법이 있습니까? 함수에 의해 반향되는 실제 반환 값을 가져 오면됩니다.
setsid()
함수를 생각하고 있었지만 그것은 똑같은 방식으로 작동하지 않습니다.setsid
새 프로세스를 시작해야하므로 명령을 사용하지 않도록 업데이트되었습니다 .