首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu使用脚本将JAVA_HOME路径添加到bashrc不工作

Ubuntu使用脚本将JAVA_HOME路径添加到bashrc不工作
EN

Stack Overflow用户
提问于 2017-02-11 01:53:10
回答 3查看 723关注 0票数 0

我正在尝试编写一个脚本,它将向bashrc添加JAVA_HOME路径。但我总是得到错误的输出。

使用以下脚本:

代码语言:javascript
复制
echo "export JAVA_HOME=/usr/lib/jvm/java-7-oracle" >> ~/.bashrc
echo "export PATH=$PATH:$JAVA_HOME/bin" >> ~/.bashrc

下面的输出是bashrc。

代码语言:javascript
复制
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添加路径。每个输出结果都是相同的。任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-11 02:04:37

正在发生的情况是,在将行添加到$PATH之前,.bashrc和$JAVA_HOME正在展开。

他们需要逃跑。

代码语言:javascript
复制
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> ~/.bashrc

代码语言:javascript
复制
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc

但是,您需要非常小心地编辑这种“蛮力”的shell "rc“文件。可能会很危险。

更好的方法是要么手工进行更改,要么将设置放入启动基于Java的应用程序的相应包装脚本中。

票数 1
EN

Stack Overflow用户

发布于 2017-02-11 02:03:59

echo只是输出命令文本,去掉回显,然后实际执行命令。

票数 0
EN

Stack Overflow用户

发布于 2017-02-11 02:05:30

问题是你使用的是双引号。这些计算变量(在本例中为$JAVA_HOME,尚未设置)。如果您使用单引号,它将输出文字而不是计算值。例如:

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

有关详细信息,请参阅Difference between single and double quotes in Bash

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42171338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档