我在./bash_profile
中有以下内容export SRCROOT=/users/benjamin.beasley/work/svn/ccdev
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk_dev/Contents/Home
export PATH=$PATH$:~/tools/tools-versions/gradle-2.2.1/bin
export PATH=$PATH$:~/tools/activator
在〜/ tools / tools-versions / gradle-1.12 / bin中,我做
drwxr-xr-x@ 4 xxx.xxx WORKDAYINTERNAL\Domain Users 136 Nov 12 11:47 .
drwxr-xr-x@ 13 xxx.xxx WORKDAYINTERNAL\Domain Users 442 Apr 29 2014 ..
-rwxr-xr-x@ 1 xxx.xxx WORKDAYINTERNAL\Domain Users 5071 Apr 29 2014 gradle
-rwxr-xr-x@ 1 xxx.xxx WORKDAYINTERNAL\Domain Users 2395 Apr 29 2014 gradle.bat
echo $ PATH $:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin$:/Users/xxx.xxx/tools/tools-versions/gradle-2.2.1/bin$:/Users/xxx.xxx/tools/activator90566
所以我得到了可执行的gradle可执行文件。我可以从这个目录执行它。但是,如果我开始一个新的shell,并键入" gradle"它说没有找到命令。但我和#PAT;回声$ PATH $"我看到〜/ tools / tools-versions / gradle-2.2.1 / bin文件夹的完整规范路径就在那里。
但是我可以执行〜/ tools / activator目录中的可执行文件激活器。我不知道为什么bash知道激活器而不是gradle。
总结:
答案 0 :(得分:1)
Unix环境变量是$PATH
而不是$PATH$
(它们不像Windows env vars)。
这导致了您的问题。
此路径已被破坏:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin$:/Users/xxx.xxx/tools/tools-versions/gradle-2.2.1/bin$:/Users/xxx.xxx/tools/activator90566
注意最后的90566
?当您设置变量时,$$
中的内容已扩展为当前进程ID。
这些都不是实际存在或有效的路径:
/opt/X11/bin$
/Users/xxx.xxx/tools/tools-versions/gradle-2.2.1/bin$
/Users/xxx.xxx/tools/activator90566