vsql のプロンプト表示を変更する方法をご紹介します。
プロンプトに任意の文字列、OS コマンドの実行結果、時刻等を表示することにより、vsql での作業効率を向上させることができます。
目次
プロンプトの種類
vsql に用意されているプロンプトには以下の種類があります。PROMPT1 | 新規コマンド行(1行目)で使用されるプロンプト表示 |
PROMPT2 | コマンドが複数行にわたる場合の2行目以降で使用されるプロンプト表示 |
PROMPT3 | COPYコマンドのデータ読み込み元に標準入力(stdin)を指定した際に使用されるプロンプト表示 |
プロンプトの設定方法とパラメータ
現在の設定の確認
現在のプロンプトの設定を確認するには vsql 上で \set コマンドを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
kkadb=> \set VERSION = 'vsql' AUTOCOMMIT = 'off' VERBOSITY = 'default' PROMPT1 = '%/%R%# ' <=★ PROMPT2 = '%/%R%# ' <=★ PROMPT3 = '>> ' <=★ ROWS_AT_A_TIME = '1000' DBNAME = 'kkadb' USER = 'kkauser' HOST = 'kkasvr1' PORT = '5433' LOCALE = 'en_US@collation=binary' HISTSIZE = '500' |
設定方法
プロンプトの設定は \set コマンドを使用して行います。\set プロンプト番号 ‘パラメータ’
[変更例]
1 |
kkadb=> \set PROMPT1 '%n%R%# ' |
パラメータ
プロンプトに指定できる主なパラメータは以下の通りです。パラメータ | 説明 | 備考 |
---|---|---|
%M | ホスト名(ドメイン名含む) | 以下のいずれかの場合のみ有効 ・vsql 起動時に「-h」オプションを使用している ・環境変数「VSQL_HOST」を設定している |
%m | ホスト名(ドメイン名を含まない) | 以下のいずれかの場合のみ有効 ・vsql 起動時に「-h」オプションを使用している ・環境変数「VSQL_HOST」を設定している |
%> | 接続ポート番号 | |
%n | 接続ユーザ名 | |
%/ | カレントデータベース名 | vsql 起動時に「-d」オプションを使用している場合のみ有効 |
%~ | ~ | デフォルトのデータベースに接続している場合 |
カレントデータベース名 | デフォルト以外のデータベースに接続している場合 | |
%# | > | |
%R | = | [PROMPT1に指定]通常時 |
^ | [PROMPT1に指定]シングルラインモードの場合 | |
! | [PROMPT1に指定]データベースへの接続に失敗した場合 | |
- | [PROMPT2に指定] | |
(なし) | [PROMPT3に指定] | |
%:name: | vsql の変数 name に設定された値 | (*1) |
%`command` | OSコマンドの実行結果 |
(*1) vsql の変数を設定する方法については、vsqlで変数を使う方法 を参考にしてください。
使用例
プロンプト1にユーザ名を表示する
現在 Vertica に接続しているユーザ名「kkauser」をプロンプトに表示します。
1 2 3 |
kkadb=> \set PROMPT1 '[%n] %# ' [kkauser] > |
プロンプト1に現在時刻を表示する
OS コマンドの実行結果を利用して、現在時刻(時分秒)をプロンプトに表示します。
1 2 3 |
kkadb=> \set PROMPT1 '[%`date "+%Y%m%d-%H%M%S"`] %# ' [20180613-120501] > |
他にも複数のパラメータを組み合わせて、任意の表示をさせることが可能です。
複数ターミナルで vsql を起動した際にユーザ名をプロンプトに表示し間違えを防いだり、作業時のコマンド実行時刻を残しておきたい場合など、様々な場面において活用することができます。