お手数おかけいたしますが、以下事象についてご見識をいただければと存じます。
宜しくお願い致します。
#前提・実現したいこと
・リモートのPostgreSQLサーバにpsqlコマンドで"pg_create_restore_point"を実行したい。
・上記のコマンドを変数に代入し、展開すれば実行できるようにしたい
#発生している問題・エラーメッセージ
変数を展開しようとしたところ、psql -c 以降のコマンドがselectとpg_create_restore_pointの間で分離してしまい、エラーにより実行されない
bash -x ${CMD_RESTORE}
~~中略~~
- ./psql.bin -h 192.168.0.1 -U postgres -d test_db -p 5444 -c '"select' 'pg_create_restore_point(201810310000)"'
psql.bin: 警告: 余分なコマンドライン引数 "pg_create_restore_point(201810310000)"" は無視されました。
ERROR: unterminated quoted identifier at or near ""select"
行 1: "select
#該当のソースコード
bash
1DB_HOST="192.168.0.1" 2DB_USER="postgres" 3DB_NAME="test_db" 4DB_PORT=5444 5RESTORE_NAME=201810310000 6 7CMD_RESTORE="psql -h ${DB_HOST} -U ${DB_USER} -d ${DB_NAME} -p ${DB_PORT} -c \"select pg_create_restore_point(${RESTORE_NAME})\"" 8 9${CMD_RESTORE} 10
#試したこと
値をダブルクォートからシングルクォートで括るなど試したが、値の中の変数が展開されないか同様のエラーが出るなど改善されない。
#補足情報(FW/ツールのバージョンなど)
Red Hat Enterprise Linux Server release 7.5 (Maipo)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/01 00:44