linux - vagrant - .bashrc 导出正确,但变量不正确

标签 linux bash vagrant vagrantfile

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/

相关文章:

ruby: usr/bin/environment ruby​​ 没有这样的文件或目录

MySQL USE 语句没有效果

windows - 在运行 CoreOS VM 的 vagrant 上使用 rsync

java - 安装Github Project Cascading/vagrant-cascading-hadoop-cluster 出错

linux - Bash 命令根据添加日期每天归档文件

mysql - 使用 vagrant 提供简单的 mysql 设置(使用 shell provisioner)

linux - 我如何在终端中回显字符串+命令

linux - 阅读在此处文档中被跳过

c - Linux——内存映射文件

bash - 将 4 个文件合并为 1 个具有不同列的文件