Respuestas:
Para deshabilitar la paginación pero conservar la salida, use:
\pset pager off
Para recordar esta configuración, agréguela a su ~ / .psqlrc .
Consulte el manual de psql .
En versiones anteriores de Pg era solo una palanca, así que \pset pager
Para suprimir completamente el resultado de la consulta, utilícelo \o /dev/null
en su psql
secuencia de comandos.
Para suprimir psql
el resultado informativo, ejecútelo -q
o configúrelo QUIET=1
en el entorno.
Para producir resultados y tirarlos, puede redirigir stdout
a /dev/null
:
psql db -f sql.sql >/dev/null
Puede redirigir tanto stdout como stderr con:
psql db -f sql.sql >&/dev/null
pero no lo recomiendo, ya que arrojará información de error que podría advertirle que algo no está funcionando bien. También estás produciendo resultados y tirándolos a la basura, lo cual es ineficiente; es mejor no producirlos en primer lugar ajustando sus consultas.
Estaba buscando esto también, encontré el camino en una pregunta similar en ServerFault:
psql -P pager=off <other params>
apaga la página de búsqueda, sin suprimir la salida.
bash, al ser un shell , tiene 2 transmisiones que puede redirigir los datos de salida: stdout y stderr, ya que esta salida necesita ser redirigida a alguna parte, linux tiene un nodo específico 'descartar todo' accesible a través de / dev / null . Todo lo que envíes allí desaparecerá en el vacío.
(los shells también tienen un flujo de entrada pero lo ignoraré aquí ya que solicitó suprimir la salida)
Estas secuencias están representadas por números: 1 para stdout y 2 para stderr.
Entonces, si desea redirigir simplemente stdout, lo haría con los operadores <
y >
(básicamente, hacia dónde apunta es hacia dónde fluyen los datos)
supongamos que queremos suprimir stdout (redirigir a / dev / null):
psql db -f sql.sql > /dev/null
Como puede ver, esto es stdout predeterminado, no se ha utilizado ningún número de transmisión si desea utilizar el número de transmisión que escribiría
psql db -f sql.sql 1> /dev/null
Ahora, si desea suprimir stderror (secuencia número 2), usaría
psql db -f sql.sql 2> /dev/null
También puede redirigir una secuencia a otra, por ejemplo, stderror a stdout, que es útil si desea guardar toda la salida en algún lugar, regular y errores.
psql db -f sql.sql 2>&1 > log.txt
importa que no puede haber espacios entre 2>&1
Finalmente, y a veces lo más interesante es el hecho de que puede suprimir toda la salida mediante el uso &>
, para cuando lo desee 'perfectamente 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
hacer que siempre elimine la salida.