環境変数でpostgresqlのパスワードを定義すると、対話無しでSQL文が実行できる
SQL文(サンプル)
#ユーザーの作成
CREATE ROLE [user_name] WITH LOGIN PASSWORD '[password]';
# データベースの作成
create database [db_name];
シェルスクリプト
# !/bin/sh
# 環境変数
export PGPASSWORD=pass
DBNAME="test_db" # 作成するデータベース名
PGUSER="test_user" # データベースユーザ名
PASS="pass" #ユーザーパスワード
# postgresqlでユーザー及びデータベース作成
psql -U postgres -c "CREATE ROLE $PGUSER WITH LOGIN PASSWORD '$PASS';"
psql -U postgres -c "create database $DBNAME;"