关于bash:如何从被调用的进程中导出PATH

How to export PATH from within a called process

本问题已经有最佳答案,请猛点这里访问。

我写了一个小的gradle-path实用程序:

1
2
#!/usr/bin/env sh
export PATH=$PATH:/cygdrive/c/Gradle/gradle-3.5/bin

但是,当我从shell中调用它时,路径最终不会改变。

如果我理解正确,那么在父进程中不会设置该变量。

如何使之成为可能?


如切普纳所说-

在自己的子shell(通常)中执行它

1
gradle-path

将创建子进程,在该子进程的环境中设置路径,然后在子进程退出时解构该环境,在父进程的内存中不执行任何操作。

要更改调用者中的路径,您必须在调用者的环境中运行路径-"source"it-如下所示:

1
. gradle-path

或者:

1
source gradle-path

这些命令基本上会将所列文件中的命令插入调用者的解析流中,就好像它们是在那里写的一样。