psql
codice di ritorno è documentato come:
EXIT STATUS
psql restituisce 0 alla shell se è finito normalmente, 1 se si verifica un errore fatale propria (ad esempio la memoria, non il file trovato), 2 se la connessione al server è andata male e la sessione non era interattiva, e 3 se si è verificato un errore in uno script e la variabile ON_ERROR_STOP è stata impostata.
Probabilmente si desidera utilizzare solo ON_ERROR_STOP.
mancata ottenere testato e segnalato alla shell:
$ psql -d test -v "ON_ERROR_STOP=1" <<EOF
select error;
select 'OK';
EOF
ERROR: column "error" does not exist
LINE 1: select error;
$ echo $?
3
Fallimento sempre ignorato e non ha riferito alla shell:
$ psql -d test <<EOF
select error;
select 'OK';
EOF
ERROR: column "error" does not exist
LINE 1: select error;
^
?column?
----------
OK
(1 row)
$ echo $?
0
fonte
2016-05-06 13:03:53
Questa risposta ha reso il mio giorno! Funzionando perfettamente per me, grazie :) –