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を使用しても問題はありません。

もう1つのことは、これがスクリプト全体でのみ発生するため、必要な変数と同じコードのみを使用してテストスクリプトを生成すると正しく実行されることです。

これをデバッグする方法は?

ベストアンサー1

おすすめ記事