当我psql
在交互模式下使用 PostgreSQL 的命令行工具时,它会将数据列为分页输出。
但是,因为我psql
在可以自己处理长输出的终端应用程序中使用,所以我宁愿获得整个输出而不用烦人的--more--
行进行分页。
有什么方法可以自定义分页行为psql
吗?我试图LESS
在周围的 shell 环境中设置为cat
,但这无济于事。
有什么建议么?
当我psql
在交互模式下使用 PostgreSQL 的命令行工具时,它会将数据列为分页输出。
但是,因为我psql
在可以自己处理长输出的终端应用程序中使用,所以我宁愿获得整个输出而不用烦人的--more--
行进行分页。
有什么方法可以自定义分页行为psql
吗?我试图LESS
在周围的 shell 环境中设置为cat
,但这无济于事。
有什么建议么?
来自精美psql
手册:
\pset option [ value ]
[...]
pager
控制使用寻呼程序进行查询和 psql 帮助输出。如果设置了环境变量PAGER
,则输出将通过管道传送到指定的程序。否则,将使用与平台相关的默认值(例如more
)。当该
pager
选项关闭时,不使用寻呼程序。当 pager 选项打开时,在适当的时候使用 pager
所以你可以从psql
提示中这样说:
psql> \pset pager off
关闭寻呼机。如果您希望它始终适用,您可以添加\pset pager off
到您的~/.psqlrc
文件中。
您还可以\?
从psql
提示中使用来快速了解您可以使用的特殊命令。
为了完整起见,我们可能会提到一次性或用作您的脚本之一中的设置...(正如“mu”所提到的,请参阅 psql --help (手册))
作为脚本中的命令
psql --pset=pager-off -c "
<sqlCommand>
"<databaseName>
从你的命令行
psql --pset=pager=off
<databaseName>
这仅对单个命令有效,因此在脚本中最有用。
您可以使用此方法代替在 psql 实用程序中进行临时更改或通过 init 文件 (~/.psqlrc) 进行永久设置。