小编yan*_*Lar的帖子

脚本可以修改其调用 shell 的环境变量吗?

我正在JAVA_HOME我的~/.bashrc文件中设置我的。

现在,我需要创建一个脚本来更改JAVA_HOME当前终端的 ,以便我可以启动需要 java 5 的应用程序。

我已经创建了这个脚本来完成这个任务,但是完成后,我可以看到 JAVA_HOME 没有更新

export JAVA_HOME=/usr/lib/jvm/java-5-oracle/
export PATH=$PATH:$JAVA_HOME    
Run Code Online (Sandbox Code Playgroud)

这是结果

$ ./javaHome5.sh
$ echo $JAVA_HOME
/usr/lib/jvm/java-6-oracle/
Run Code Online (Sandbox Code Playgroud)

我认为没有应用的原因是脚本正在它自己的终端中执行,所以当脚本结束时,当前终端不会受到影响。

目前,我找到的唯一方法是:

  1. 编辑我~/.bashrc和更改JAVA_HOME VAR
  2. 运行source ~/.bashrc以应用当前终端中的更改。这又不能在脚本中应用,因为该source命令需要在当前窗口中运行。

毋庸置疑,此更改适用于所有新的终端窗口,因此我实际上需要执行两次此操作:一次在启动我的应用程序之前,另一次是在此之后立即将环境变量恢复为默认值。那真的不太方便。

您有什么想法可以使用脚本更改此 var 吗?

bash scripts environment-variables

2
推荐指数
1
解决办法
7816
查看次数

标签 统计

bash ×1

environment-variables ×1

scripts ×1