sudo不会在shell中工作

时间:2015-09-14 11:39:36

标签: shell sudo

我遇到以下命令的问题

sudo -u ${USER} -H sh -c "bash ${START_SCRIPT}"

我可以使用START_SCRIPT排除错误,因为

bash ${START_SCRIPT}

效果很好。

我认为sudo语法一定存在问题,但我找不到答案。无处不在(例如this link,由Kimvais或sudo联机帮助回答)建议我上面使用的格式。

USER=some_user START_SCRIPT=/some/long/path/start.sh

我只能猜测它与长路径有关,或者我错过了sudo命令的任何参数。

this thread中,我读到了:

sudo -H -u otheruser bash -c 'echo "I am $USER, with uid $UID"'

完美无缺,但

sudo -H -u otheruser bash -c '${START_SCRIPT}'

,也不

sudo -H -u otheruser -c 'bash "${START_SCRIPT}"'

作品。

任何人都可以帮助我或者至少提一下吗?

1 个答案:

答案 0 :(得分:0)

中的单引号
sudo -H -u otheruser bash -c '${START_SCRIPT}'

阻止shell扩展$。只需使用双引号:

sudo -H -u otheruser bash -c "${START_SCRIPT}"