如何从Bash脚本修改 /etc/environment 文件

5

目前,我正在尝试自动化我们在工作中使用的一个过程。每当我们安装Oracle的JDK时,我们需要手动将其添加到全局PATH变量中。以下是该过程的摘录:

sudo vi /etc/environment
add this at the beginning of the PATH : "/opt/jdk1.6.0_45/bin:"

这是我电脑上 /etc/environment 文件的内容:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

以下是修改后的页面效果:
PATH="/opt/jdk1.6.0_45/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

请不要忘记,这个文件不是一个脚本,而是一个包含KEY=VALUES的文件。这个文件存储系统范围内的语言环境和路径设置。
我的问题是,我如何在不涉及任何手动操作的情况下,从/etc/environment中添加一个新路径到PATH变量中,最好只使用bash脚本。此外,如果我运行生成的脚本两次,我希望避免看到我的JDK路径被添加多次。
1个回答

8
您可以使用sed命令先删除再插入jdk路径:
#!/bin/bash
sed -e 's|/opt/jdk1.6.0_45/bin:||g' -i /etc/environment 
sed -e 's|PATH="\(.*\)"|PATH="/opt/jdk1.6.0_45/bin:\1"|g' -i /etc/environment

我会将它们合并成一个单独的 sed 调用。命令可以用分号连接。 - Keith Thompson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接