0

postgresql コマンドを実行するためのシェル スクリプトを作成しました。問題は、このスクリプトを実行しているときにエラーが表示されることです: line 17: psql: command not found

私のスクリプトは次のとおりです。

export PGPASSWORD=${PGPASSWORD-my_password}
echo "enter host"
read host
echo "enter database name"
read dbname
echo "enter username"
read username
psql -h $host $dbname $username <<EOF
SELECT * FROM test ; >>res.txt
EOF

( cat res.txt) | sed 's/;/<tab>/g' > $file.csv
rm res.txt
unset PGPASSWORD

私が間違っていることを教えてください。

4

1 に答える 1

0

psqlバイナリを見つけます

which psql

次のような出力が得られます

/usr/bin/psql

これで、スクリプトで完全なパスを使用するか、$PATH を拡張できます

ちょっとしたメモ!スクリプト内にパスワードを保存しないでください。特定のユーザーの (psql) パスワードが必要な場合は、.pgpass に保存する必要があります。

host:db:user:password

適切な許可を与えます(つまり、0600)

于 2013-07-16T07:26:26.940 に答える