2014-09-03 99 views
1

我沒有寫vagrant文​​件 - 它是由我的一個同事製作的,我不是很熟悉寫它們,但是基於什麼他們看起來像,我可以在一定程度上理解它在做什麼。我運行的是Windows和精確的32位虛擬機,並模擬某種Linux系統。vagrant - .bashrc有正確的出口,但變量不正確

基本上發生的事情是無業遊民文件執行bootstrap.sh,其中包含以下行:

cat /vagrant/support/bash-template.dat >> /home/vagrant/.bashrc 

支持/ bash的-template.dat包含

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 

當我檢查後的.bashrc ssh'ing流浪者,它有這條線在底部。

如果我做

> 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個變量。 在此先感謝您的幫助。

+2

這聽起來像一個Windows CRLF問題。在文本編輯器中打開'.bashrc',它將向你顯示行尾,並確保你有'\ n' unix風格的結尾,而不是Windows。 – beroe 2014-09-03 23:46:53

+2

這個錯誤信息就像這樣混淆的事實就是線索。 'bash-template.dat'文件具有DOS換行符。預期Unix行結束的bash不能正確處理。將文件轉換爲unix行尾,並且應該修復它。 – 2014-09-03 23:47:08

回答

0

您可以使用dos2unix util修復您的行結尾不匹配。