【发布时间】:2014-11-19 20:06:39
【问题描述】:
在使用 Vagrant 启动新实例时,我正在尝试从配置 shell 脚本向我的主目录中的 .bashrc 添加一些额外的行。
在我的 shell 脚本中:
set -x
sudo apt-get update
sudo apt-get install vim
echo "source /usr/local/share/chruby/chruby.sh">> ~/.bashrc
echo "source /usr/local/share/chruby/auto.sh">> ~/.bashrc
但是在完成之后没有任何东西被写入 .bashrc。
这是完整脚本的精简版,其目的是安装 Ruby/Rails。
【问题讨论】:
-
在添加到 bashrc 文件之间添加调试回显,我最好的猜测是您的脚本由于控制结构而以某种方式跳过它。
-
当 bash 脚本遇到试图回显到 .bashrc 的行时,我在标准输出中得到以下内容,它们正在运行 - 它们是否有可能被回显到 .bashrc不在 /home/vagrant 中的文件? ==> 默认值:++ echo 'source /usr/local/share/chruby/chruby.sh' ==> 默认值:++ echo 'source /usr/local/share/chruby/auto.sh' ==> 默认值:++。 /root/.bashrc ==> 默认值:+++ '[' -z '' ']' ==> 默认值:+++ 返回
-
如果是,您可以通过将
~替换为/的完整路径来轻松避免它?