bash スクリプトから PostgreSQL にアクセスする

<--PostgreSQL メモへ戻る

基本的な考え方は単純で,psql コマンドによる対話的処理を, bash のヒアドキュメント機能を使って一括処理しようとするものである.

この機能を用いれば,psql コマンドを bash スクリプトから利用できる.
基本的な使い方は

psql -q -U データベースユーザ名  データベース名 > 結果出力用ファイル << _EOF
select などの SQL 文
_EOF
である. psql コマンドの -q オプションは, 無駄なメッセージを表示させないために付けている. (この方が結果処理の手間を軽減できる.)

(捕捉)bash のヒアドキュメント機能
これは,入力リダイレクションの一種とでも思えばよい.
通常,何らかのコマンドに対して入力のリダイレクトを行なう場合, 入力内容をいったんテキストファイルとして保存しておき,

コマンド   <   入力ファイル
とする.
これに対し,ヒアドキュメントでは,
コマンド << 終端文字列

   [入力内容]

終端文字列
とすることで,終端文字列より前までの [入力内容] がコマンドへの入力として処理される.

例えば,

cat > file1 << EOF
aaa
bbb
EOF
とすると,終端文字列("EOF")の前までの "aaa" と "bbb" が file1 へ書き込まれる.


(C) 2000 - 2004 Hirohisa AMAN <aman@cs.ehime-u.ac.jp>