我遇到以下命令的问题
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}"'
作品。
任何人都可以帮助我或者至少提一下吗?
答案 0 :(得分:0)
中的单引号
sudo -H -u otheruser bash -c '${START_SCRIPT}'
阻止shell扩展$
。只需使用双引号:
sudo -H -u otheruser bash -c "${START_SCRIPT}"