我有最简单的问题,我不确定我做错了什么。bash以不同的用户执行命令su
我用/ bin/sh的
的脚本中,我有以下有一个简单的shell脚本:
exec_as_wwwdata() {
if [ $(whoami) = ${WWW_USER} ]]; then
[email protected]
else
su -s /bin/sh -c '[email protected]' ${WWW_USER}
fi
}
我与
exec_as_wwwdata composer config -g github-oauth.github.com $COMPOSER_GITHUB_TOKEN
调用它,它只是什么都不做,没有任何错误信息。 如果我所说的直接脚本
su -s /bin/sh -c 'composer config -g github-oauth.github.com $COMPOSER_GITHUB_TOKEN' ${WWW_USER}
它的作品里面以下。
我在这里做错了什么?
意见的基础上我已经改成了这个
exec_as_wwwdata() {
if [ $(whoami) = ${WWW_USER} ]]; then
[email protected]
else
su -s /bin/sh -c '"[email protected]"' "$WWW_USER" _ "[email protected]"
fi
}
虽然当我用下面的参数
exec_as_wwwdata /usr/local/bin/php /usr/local/bin/composer create-project --repository-url=xxxx .
我收到以下错误消息
su: unrecognized option '--repository-url=
叫它我认为在字符串中存在问题。我该如何逃避?
''''''不扩展变量。 – melpomene
用''替换''''' – janos
请注意''$ @“'(是的,引号很重要)将被视为* only *作为命令名称及其参数;无管道,无重定向,无'&& ''''''''运算符 – chepner