A página de documentos afirma (ênfase minha)
Status de saída
O psql retorna 0 ao shell se terminou normalmente, 1 se ocorrer um erro fatal próprio (por exemplo, falta de memória, arquivo não encontrado), 2 se a conexão com o servidor foi ruim e a sessão não foi interativa e 3 se ocorreu um erro em um script e a variável ON_ERROR_STOP foi definida.
No entanto, parece que não consigo induzir o código de saída 3.
bash-4.2$ uname -a
Linux mvpg-centos-76.vagrantup.com 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
bash-4.2$ psql --version
psql (PostgreSQL) 10.12
bash-4.2$ psql -v ON_ERROR_STOP=1 -c 'select 1/0;'
ERROR: division by zero
bash-4.2$ echo $?
1
bash-4.2$
Eu também reproduzi esse comportamento no FreeBSD 11.3 e Darwin 19.3. Estou entendendo mal a documentação ou usando uma sintaxe defeituosa?
Conseguiu funcionar de algumas maneiras:
e:
e: