我需要将其添加到.bashrc
echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
但我正在使用shell脚本,我需要在另一个用户下运行它,所以我尝试了以下..
BASH_COMMAND='[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"'
sudo su ${USER} -c "echo '${BASH_COMMAND}' >> ${HOME_BASE}${USER}/.bashrc"
我期待看到
'[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
在.bashrc
但我认为这是
sudo su ${USER} -c "echo echo 'sudo su ${USER} -c "echo '${BASH_COMMAND}' >> ${HOME_BASE}${USER}/.bashrc"' >> /home/deploy/.bashrc >> ${HOME_BASE}${USER}/.bashrc"
脚本
我做错了什么答案 0 :(得分:1)
shell有时可能会误解重定向,你可以用以下方法解决这个问题:
RVM_COMMAND='[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"'
echo "${RVM_COMMAND}" | sudo su ${USER} -c 'tee -a "$HOME/.bashrc"' >/dev/null