Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ubuntu使用脚本将JAVA_主路径添加到bashrc不工作_Bash_Shell_Ubuntu_Path - Fatal编程技术网

Ubuntu使用脚本将JAVA_主路径添加到bashrc不工作

Ubuntu使用脚本将JAVA_主路径添加到bashrc不工作,bash,shell,ubuntu,path,Bash,Shell,Ubuntu,Path,我正在尝试编写一个脚本,将JAVA_主路径添加到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 PA

我正在尝试编写一个脚本,将JAVA_主路径添加到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添加路径。我得到的结果都是一样的。任何帮助都将不胜感激。

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

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

他们需要逃脱;e、 g

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

但是,对于shell rc文件的这种暴力编辑,您需要非常小心。这可能很危险


更好的办法是手动进行更改,或者将设置放入启动基于Java的应用程序的相应包装器脚本中。问题是您使用的是双引号。这些函数用于计算本例中的变量$JAVA_HOME,该变量尚未设置。如果改为使用单引号,它将输出文本而不是计算值。 e、 g

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


有关更多信息,请参阅。

如果删除>>~/.bashrc部分,命令的输出是什么?
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc