我编写了一个小型gradle-path
实用程序:
#!/usr/bin/env sh
export PATH=$PATH:/cygdrive/c/Gradle/gradle-3.5/bin
但是,当我从我的shell调用它时,PATH在最后并没有改变。
如果我理解正确的话,该变量不会在父进程中设置。
如何使之成为可能?
正如chepner所说-
用之类的东西在自己的子shell中执行它(通常(
gradle-path
将创建一个子进程,在该子进程的环境中设置PATH,然后在子进程退出时解构该环境,在父进程的内存中不执行任何操作。
要更改调用者中的PATH,您必须在调用者的环境中运行它——"源"它——如下所示:
. gradle-path
或者这个:
source gradle-path
这些基本上将所列文件中的命令插入到调用方的解析流中,就好像它们是在那里编写的一样。