簡體   English   中英

Ubuntu使用腳本將JAVA_HOME路徑添加到bashrc不起作用

[英]Ubuntu using script to add JAVA_HOME path to bashrc not working

我正在嘗試編寫一個腳本,該腳本會將JAVA_HOME路徑添加到bashrc。 但是我一直得到錯誤的輸出。

使用以下腳本:

echo "export JAVA_HOME=/usr/lib/jvm/java-7-oracle" >> ~/.bashrc
echo "export PATH=$PATH:$JAVA_HOME/bin" >> ~/.bashrc

我在bashrc中得到以下輸出

export JAVA_HOME=/usr/lib/jvm/java-7-oracle
export PATH=/home/ubuntu/apache-maven-3.3.9/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr$

所需的輸出是export PATH=$PATH:$JAVA_HOME/bin

該腳本不僅用於添加Java路徑,也不會為hadoop,spark和hbase添加路徑。 我得到每個相同的輸出。 任何幫助,將不勝感激。

發生的是,在將行添加到.bashrc之前,已擴展$ PATH和$ JAVA_HOME。

他們需要逃脫; 例如

echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> ~/.bashrc

要么

echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc

但是,您要對外殼“ rc”文件的這種“強力”編輯非常小心。 可能很危險。

一個更好的主意是手動進行更改,或者將設置放入啟動基於Java的應用程序的相應包裝腳本中

echo只是輸出命令文本,擺脫回聲,然后實際執行命令。

問題是您正在使用雙引號。 它們計算變量(在本例中$JAVA_HOME ,尚未設置)。 如果您使用單引號代替,它將輸出文字而不是被評估。 例如

echo 'export JAVA_HOME=/usr/lib/jvm/java-7-oracle' >> ~/.bashrc echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc

有關更多信息,請參見Bash中單引號和雙引號之間的差異

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM