Linux 在bash脚本中执行Postgresql命令

Linux 在bash脚本中执行Postgresql命令,linux,postgresql,shell,Linux,Postgresql,Shell,我已经编写了一个shell脚本来执行postgresql命令。问题是,当我执行此脚本时,它显示了一个错误:第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

我已经编写了一个shell脚本来执行postgresql命令。问题是,当我执行此脚本时,它显示了一个错误:
第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
export PGPASSWORD=${PGPASSWORD-my_password}
回显“进入主机”
读主机
echo“输入数据库名称”
读取数据库名
回显“输入用户名”
读取用户名
psql-h$host$dbname$username res.txt
EOF
(cat res.txt)| sed's///g'>$file.csv
rm res.txt
取消设置密码

请告诉我我做错了什么。

which psql
您将获得如下输出:

/usr/bin/psql
现在,您可以在脚本中使用完整路径或扩展$path

只是一个简短的说明!不要在脚本中保存密码。如果您需要某些用户的(psql)密码,则应将其保存在.pgpass中

host:db:user:password

并给它适当的权限(即0600)

它不是在告诉您问题吗:
第17行:psql:command not found
?您需要指定到
psql
的完整路径,如果它不存在,则需要安装它。@devnull。但我已经安装了psql@DEVANGPANDEY您能否向我们显示
的输出,其中是psql
?@devangpandey您还需要将其添加到
路径中。尝试从命令行发出
psql
;你会明白的。@devnull在这种情况下,我的shell脚本正确吗?