Bash - 添加包含变量的新行

时间:2016-07-29 21:19:13

标签: bash shell ubuntu vim echo

我想将这一新行添加到我的.bashrc:

Path=$PATH:$JAVA_HOME/bin

我用过:

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

但它插入了:

PATH="/home/ubuntu/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/bin:/usr/lib/java/jdk1.8.0_102/bin:/usr/lib/java/jdk1.8.0_102/bin:/usr/lib/java/jdk1.8.0_102/bin"

任何人都可以帮忙解决这个问题吗?

我知道我可以使用像vim这样的文本编辑器,但是作为脚本的一部分我需要使用

echo "string" >> file

变体

谢谢和问候!

3 个答案:

答案 0 :(得分:2)

您需要为$$PATH

转义$JAVA_HOME

所以它应该是:

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

答案 1 :(得分:2)

你不应该逃避美元符号而不是添加引号并逃避这些标记吗? 而且你的命令应该在它前面有一个导出,所以它最终会被echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> .bashrc

答案 2 :(得分:2)

为了让它比这里的其他答案更漂亮,你可以使用单引号,因为变量不会被扩展:

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

此外,你要删除之前尝试中删除.bashrc中的所有部分,直到你这样做为止,你的PATH会因为你的例子中出现重复和错误的条目而变得混乱。