質問: 複数のマシーンに同様のpostgresqlの環境をローカルで構築したいと考えています。 同様の環境を複数構築すること、構築するマシーンの所有者はpostgresqlの設定等を考えずに入れられるようすること、以上のような理由からシェルスクリプトを書いて自動化して実行できたらと思います。 しかしデータベースに接続するまではlinuxのユーザーが行っているのでできているようなのですが、接続してからパスワードを変更したり、リストア用のsqlファイルを読み込ませる等の操作ができません。 書いているスクリプト自体は ``` install.sh #!/bin/bash 〜〜〜〜〜〜〜〜〜 インストール等 〜〜〜〜〜〜〜〜〜 expect -c " set timeout -1 spawn su \"${user}\" -c ./postgres_setup.sh expect \"パスワード\" send ${pass} expect eof exit 0 " postgres_setup.sh #!/bin/bash psql <- ここから進めない ``` ``` このような状況で目的を果たすためにはどのようにすればよろしいでしょうか。 またそもそもシェルスクリプトでpostgresqlをいじれるのか。 環境は ubuntu 14.04 postgresql 9.3 シェルはなんだかわかりません ぐぐったのそのまま書いてます。 初心者で質問がわかりにくいかもしれませんがどうぞよろしくお願いいたします。
回答: psql は -f パラメータでファイルを読み込ませられます。 あるいは標準入力から渡すこともできます。 そうすれば psql で入力待ちになることはないでしょう。