Quando eu executo um comando psql -d database -c 'select * from table'
ou psql -d database -f sqlcommands
psql
não termina de forma limpa. Curiosamente, canalizar o conteúdo do arquivo em vez de usar a -f
opção, por exemplo, psql -d database < sqlcommands
não exibe esse comportamento.
Preciso pressionar a q
tecla conforme solicitado por less
ou man
para que a execução termine e retorne ao prompt de comando?
Esse é o comportamento padrão? São necessários alguns escapes que permitirão que ele termine de forma limpa?
Parece que o pager do seu terminal está assumindo a saída: você pode dizer ao psql para não enviar sua saída para o pager quando estiver usando a
-c 'select... '
invocação via:Você também pode colocar a linha
pset pager OFF
no arquivo~/.psqlrc
, no entanto, parece que as diretivas ~/.psqlrc são respeitadas apenas no modo interativo, não para comandos passados via-c '...'
. Mais ótimas dicas para uso não interativo do psql de Peter Eisentraut .