bash
  • shell
  • rvm
  • 2012-07-30 59 views 1 likes 
    1

    我需要把它添加到.bashrc什麼不對這個shell命令

    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" 
    

    我在做什麼錯的腳本

    回答

    1

    外殼有時誤解重定向,你可以解決這個問題:

    RVM_COMMAND='[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"' 
    echo "${RVM_COMMAND}" | sudo su ${USER} -c 'tee -a "$HOME/.bashrc"' >/dev/null 
    
    相關問題