繁体   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