set -e를 사용하면 bash 스크립트가 오류 없이 갑자기 종료됩니다.

set -e를 사용하면 bash 스크립트가 오류 없이 갑자기 종료됩니다.

스크립트가 약간 민감해서 일부 세부 정보를 숨기겠지만 스크립트는 > 표시까지 실행됩니다.

    auth="$(mariadb -N -h $DBHOST -P $DBPORT $DBNAME -e "SELECT ..... -u $DBUSER -p$DBPASS)"
    > ssh -i /root/.ssh/ssh_host_ed25519_key -oStrictHostKeyChecking=accept-new "IP" "do $auth"
    
    export GFS="IPS"
    for ip2 in $GFS; do ufw allow from $ip2; done
    for ip2 in $GFS; do ssh -i /root/.ssh/ssh_host_ed25519_key -oStrictHostKeyChecking=accept-new -n "$ip2" "ufw allow from $MYIP"; done
...

ssh 명령이 오류 없이 실행된 다음 스크립트가 중지됩니다. bash -x를 사용해도 아무런 문제가 없습니다.

더 이상한 점은 이것이 전체 스크립트에서만 발생하기 때문에 필요한 변수와 동일한 코드만 사용하여 테스트 스크립트를 생성하면 제대로 실행된다는 것입니다.

이것을 디버깅하는 방법은 무엇입니까?

관련 정보