我有一个脚本,在其中我给出了以下命令-
su-postgres
psql
\c db1;
从员工中选择*;
但当我运行脚本时,我无法进入psql内部,它在第一个命令";su-postgres";
[root@quadoralnx~]#/ora.sh
最后登录时间:美国东部时间2020年8月25日星期二01:23:59 pts/11
-bash-4.2$
当我退出时,它会给出以下错误-
-bash-4.2$退出
退出
psql:错误:无法连接到服务器:FATAL:角色"根";不存在
/ora.sh:行3:c:未找到命令
/ora.sh:第4行:中意外标记"from"附近出现语法错误
/ora.sh:第4行:`从员工中选择*;'
[root@quadoralnx~]#
所以这里我需要的是它不应该在第一步中停止,并且应该在一次拍摄中运行该脚本中的所有命令。有人能帮我做这个吗?
提前感谢!!
它不会这样工作的。使用此语法从bash-cli:运行sql查询
dbhost=localhost
dbport=5432
dbuser=postgres
dbname=postgres
psql -h$dbhost -p$dbport -U$dbuser -d$dbname -c "select 1;"
为了避免密码提示,您可以创建类似的~/.pgpass
文件
dbpass=secret
echo "$dbhost:$dbport:$dbname:$dbuser:$dbpass" > ~/.pgpass
chmod 600 ~/.pgpass