Respostas:
Para desativar a paginação, mas reter a saída, use:
\pset pager off
Para lembrar dessa configuração, adicione-a ao seu ~ / .psqlrc .
Veja o manual do psql .
Nas versões mais antigas do Pg, era apenas uma alternância, então \pset pager
Para suprimir completamente a saída da consulta, use \o /dev/null
no seu psql
script.
Para suprimir psql
a saída informativa, execute-a com -q
ou defina-a QUIET=1
no ambiente.
Para produzir resultados e jogá-los fora, você pode redirecionar stdout
para /dev/null
:
psql db -f sql.sql >/dev/null
Você pode redirecionar stdout e stderr com:
psql db -f sql.sql >&/dev/null
mas não recomendo isso, pois descartará informações de erro que podem avisar que algo não está indo bem. Você também está produzindo resultados e jogando-os fora, o que é ineficiente; é melhor você não produzi-las em primeiro lugar, ajustando suas consultas.
Eu também estava procurando por isso, encontrei o caminho em uma pergunta semelhante no ServerFault:
psql -P pager=off <other params>
desativa a paginação, sem suprimir a saída.
bash, sendo um shell , possui 2 fluxos que você pode redirecionar os dados de saída: stdout e stderr, porque essa saída precisa ser redirecionada para algum lugar, o linux tem um nó específico 'descartar tudo' acessível através de / dev / null . Tudo o que você envia para lá simplesmente desaparece no vazio.
(os shells também têm um fluxo de entrada, mas ignorarei isso aqui, pois você pediu para suprimir a saída)
Esses fluxos são representados por números: 1 para stdout e 2 para stderr.
Portanto, se você deseja redirecionar apenas o stdout, faça isso com os operadores <
e >
(basicamente para onde ele aponta é para onde os dados fluem)
suponha que desejamos suprimir stdout (redirecione para / dev / null):
psql db -f sql.sql > /dev/null
Como você pode ver, stdout é o padrão, nenhum número de fluxo foi usado se você quisesse usar o número de fluxo que escreveria
psql db -f sql.sql 1> /dev/null
Agora, se você deseja suprimir o stderror (fluxo número 2), use
psql db -f sql.sql 2> /dev/null
Você também pode redirecionar um fluxo para outro, por exemplo, stderror para stdout, o que é útil se você deseja salvar toda a saída em algum lugar, regular e erros.
psql db -f sql.sql 2>&1 > log.txt
lembre-se, não pode haver espaços entre 2>&1
Finalmente e, às vezes, mais interessante é o fato de que você pode suprimir toda a saída usando &>
, para quando quiser 'perfeitamente silencioso'
psql db -f sql.sql &> /dev/null
psql -U user -P pager=off -d database -c 'SQL';
PAGER="/dev/null" psql db -P pager=always -f sql.sql
sempre matar a saída.