PostgreSQLのコマンドラインツールであるpsql
をインタラクティブモードで使用すると、ページ付けされた出力としてデータが一覧表示されます。
ただし、長い出力自体を処理できるターミナルアプリケーションではpsql
を使用するため、煩わしい--more--
行でページ付けせずに出力全体を取得したいと思います。
psql
のページング動作をカスタマイズする方法はありますか?周囲のシェル環境でLESS
をcat
に設定しようとしましたが、これは役に立ちません。
助言がありますか?
fine psql
manual から:
\pset option [ value ]
[...]pager
クエリおよびpsqlヘルプ出力用のポケットベルプログラムの使用を制御します。環境変数PAGER
が設定されている場合、出力は指定されたプログラムにパイプされます。それ以外の場合は、プラットフォームに依存するデフォルト(more
など)が使用されます。
pager
オプションがオフの場合、ポケットベルプログラムは使用されません。ポケットベルオプションがオンの場合、必要に応じてポケットベルが使用されます
したがって、これはpsql
プロンプトから言うことができます。
psql> \pset pager off
ポケットベルをオフにします。これを常に適用したい場合は、\pset pager off
ファイルに~/.psqlrc
を追加できます。
psql
プロンプトから\?
を使用して、自由に使用できる特別なコマンドの概要を取得することもできます。
完全を期すために、1回限りの場合、またはスクリプトの1つで設定として使用する場合...(「mu」で言及されているように、psql --help(マニュアル)を参照してください)
スクリプト内のコマンドとして
psql --pset = pager-off -c "
<sqlCommand>
"<databaseName>
コマンドラインから
psql --pset = pager = off
<databaseName>
これは単一のコマンドに対してのみ有効であるため、スクリプトで最も役立ちます。
このメソッドは、psqlユーティリティ内で一時的な変更を行うか、initファイル(〜/ .psqlrc)を介して永続的な設定を行う代わりに使用できます。