vagrant 文件不是我写的——它是我的一个同事写的,我不太熟悉写它们,但是根据它们的样子,我可以在一定程度上理解它在做什么。我正在运行 Windows 和 precise32 virtualbox,并模拟某种 Linux 系统。
基本上发生的事情是 vagrant 文件执行 bootstrap.sh,其中包含以下行:
cat /vagrant/support/bash-template.dat >> /home/vagrant/.bashrc
支持/bash-template.dat 包含
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
当我在 ssh 进入 vagrant 后检查 .bashrc 时,它的底部有这一行。
如果我这样做
> echo $JAVA_HOME
我明白了
/usr/lib/jvm/java-7-openjdk-i386
但如果我这样做
>cd $JAVA_HOME
我明白了
: No file or directorya-7-openjdk-i386
这是怎么回事?它只是将变量的后半部分与错误消息混合在一起。
目录存在!如果我从根开始,我可以做
~> cd /usr/lib/jvm/java-7-openjdk-i386
它把我带到了 java 的故乡。 我可以在 shell 中重新导出变量,它们可以工作,但是如果能够从 .bashrc 中执行它会非常有帮助,这样我就不必在每次登录时都重新导出所有 15 个变量。 在此先感谢您的帮助。
最佳答案
您可以使用 dos2unix
工具来修复您的行尾不匹配问题。
关于linux - vagrant - .bashrc 导出正确,但变量不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25655256/