web-dev-qa-db-ja.com

psqlでポケットベルをカスタマイズする

PostgreSQLのコマンドラインツールであるpsqlをインタラクティブモードで使用すると、ページ付けされた出力としてデータが一覧表示されます。

ただし、長い出力自体を処理できるターミナルアプリケーションではpsqlを使用するため、煩わしい--more--行でページ付けせずに出力全体を取得したいと思います。

psqlのページング動作をカスタマイズする方法はありますか?周囲のシェル環境でLESScatに設定しようとしましたが、これは役に立ちません。

助言がありますか?

27
halloleo

fine psql manual から:

\pset option [ value ]
[...]
pager
クエリおよびpsqlヘルプ出力用のポケットベルプログラムの使用を制御します。環境変数PAGERが設定されている場合、出力は指定されたプログラムにパイプされます。それ以外の場合は、プラットフォームに依存するデフォルト(moreなど)が使用されます。

pagerオプションがオフの場合、ポケットベルプログラムは使用されません。ポケットベルオプションがオンの場合、必要に応じてポケットベルが使用されます

したがって、これはpsqlプロンプトから言うことができます。

psql> \pset pager off

ポケットベルをオフにします。これを常に適用したい場合は、\pset pager offファイルに~/.psqlrcを追加できます。

psqlプロンプトから\?を使用して、自由に使用できる特別なコマンドの概要を取得することもできます。

34
mu is too short

完全を期すために、1回限りの場合、またはスクリプトの1つで設定として使用する場合...(「mu」で言及されているように、psql --help(マニュアル)を参照してください)

スクリプト内のコマンドとして

psql --pset = pager-off -c "<sqlCommand> "<databaseName>

コマンドラインから

psql --pset = pager = off <databaseName>

これは単一のコマンドに対してのみ有効であるため、スクリプトで最も役立ちます。

このメソッドは、psqlユーティリティ内で一時的な変更を行うか、initファイル(〜/ .psqlrc)を介して永続的な設定を行う代わりに使用できます。

1
spikendu