【发布时间】:2015-01-23 07:49:43
【问题描述】:
我在 PHP 脚本中构建了一个 bash 命令。构建的命令如:
su postgres -c "for tbl in `psql -qAt -c \"select tablename from pg_tables where schemaname = 'public';\" demodoo` ;do psql -c \"alter table $tbl owner to postgres\" demodoo ;done "
当我尝试在 shell 中运行此命令时,我收到此错误:
psql: FATAL: role "root" does not exist
为什么会出现这种情况,而我在 postgres 用户下执行命令?
谢谢 干杯,
编辑 我将命令更改为
sudo -u postgres for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" demodoo` ;do psql -c "alter table $tbl owner to postgres" demodoo ;done
但现在我收到另一个我无法理解来源的错误:
-bash: syntax error near unexpected token `do'
【问题讨论】:
-
谢谢,我在阅读帖子后编辑了我的问题,但出现错误
-
此链接可能对您有所帮助:stackoverflow.com/questions/11919391/…
标签: php bash postgresql