Postgresqlでシーケンスを作成したとします。
CREATE SEQUENCE my_seq;
以下の行をsqlファイルget_seq.sqlに保存します
SELECT last_value FROM my_seq;
$Sudo psql -q -d database_bame -f get_seq.sql
SELECTによって返されたint番号をbashに取得して使用するにはどうすればよいですか?
VAR = $(command)構文を使用して、コマンドの結果をキャプチャできます。
VALUE=$(psql -qtAX -d database_name -f get_seq.sql)
echo $VALUE
必要なpsqlオプションの意味は次のとおりです。
-t
タプルのみ
-A
出力は整列されていません
-q
静か
-X
.psqlrcファイルを実行しない
試してください:
LAST_VALUE=`echo "SELECT last_value FROM my_seq;" | psql -qAt -d database_bame`
つまり、Bashで$?
変数を使用できます。 psql
を実行し、組み込み変数$?
から戻り値を読み取り、それに応じて動作します。
#!/bin/bash
psql -q -d database_bame -f get_seq.sql # >/dev/null we are only interested in return value
exit_value=$? # or you could just echo $? right after the psql
echo $exit_value # but storing it to $exit_value lasts longer
出力:
0