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個變量。 在此先感謝您的幫助。
這聽起來像一個Windows CRLF問題。在文本編輯器中打開'.bashrc',它將向你顯示行尾,並確保你有'\ n' unix風格的結尾,而不是Windows。 – beroe 2014-09-03 23:46:53
這個錯誤信息就像這樣混淆的事實就是線索。 'bash-template.dat'文件具有DOS換行符。預期Unix行結束的bash不能正確處理。將文件轉換爲unix行尾,並且應該修復它。 – 2014-09-03 23:47:08