2016-05-06 16 views

risposta

15

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 
+1

Questa risposta ha reso il mio giorno! Funzionando perfettamente per me, grazie :) –

Problemi correlati