如何从bash脚本修改/ etc / environment

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

 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的文件。 该文件存储系统范围的区域设置和path设置。

我的问题是我怎么能添加一个新的path从/etc/environmentPATHvariables,而不涉及任何手动操作,最好只使用bash脚本。 另外,如果我运行结果脚本两次,我想避免看到我的JDKpath添加了多次。

你可以使用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