[英]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.