为什么命令 - sh引发错误?

时间:2014-10-23 03:12:08

标签: shell capistrano sh zsh capistrano3

为什么shell命令会引发错误:

    sudo -u postgres \ 
    -- sh -c '/usr/bin/env psql -c "CREATE ROLE deploy PASSWORD secret SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;"'

原因:

ERROR:  syntax error at end of input
LINE 1: CREATE
              ^

什么是正确的语法?
非常感谢。

1 个答案:

答案 0 :(得分:1)

尝试:

sudo -u postgres '/usr/bin/env RBENV_ROOT=/usr/local/rbenv RBENV_VERSION=2.1.3 psql -c "CREATE ROLE deploy PASSWORD secret SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;"'

env在运行命令之前进行变量赋值。我不明白为什么你需要使用sh -csudo为你执行命令。