为什么Gradle在Linux中的包装器必须以这种方式启动?

Xel*_*ian 4 linux bash wrapper gradle

我有一个具有这种结构的Gradle项目:

ls -alh

drwxr-xr-x 9 Xelian 4.0K Aug  5 22:39 .
drwxrwxr-x 3 Xelian 4.0K Aug  5 16:19 ..
-rw-rw-r-- 1 Xelian  465 Aug  5 16:19 build.gradle
drwxrwxr-x 8 Xelian 4.0K Aug  5 16:38 buildSrc
drwxrwxr-x 3 Xelian 4.0K Aug  5 16:19 gradle
drwxrwxr-x 3 Xelian 4.0K Aug  5 16:45 .gradle
-rwxrwxrwx 1 Xelian 5.0K Aug  5 17:29 gradlew
-rw-rw-r-- 1 Xelian 2.3K Aug  5 16:19 gradlew.bat
-rw-rw-r-- 1 Xelian 17K Aug  5 16:19 README.md
-rw-rw-r-- 1 Xelian   30 Aug  5 16:19 settings.gradle
Run Code Online (Sandbox Code Playgroud)

为了执行gradlew bash文件,我写道:

gradlew -v
Run Code Online (Sandbox Code Playgroud)

输出:

No command 'gradlew' found, did you mean:
 Command 'gradle' from package 'gradle' (universe)
gradlew: command not found
Run Code Online (Sandbox Code Playgroud)

如果我写:

 ./gradlew -v 
Run Code Online (Sandbox Code Playgroud)

一切正常.

./表示当前目录吗?

And*_*bbs 9

键入时:

command
Run Code Online (Sandbox Code Playgroud)

shell将按$PATH顺序搜索环境变量中列出的所有目录,以查找名为" command " 的可执行文件.

键入时:

./command
Run Code Online (Sandbox Code Playgroud)

./部分明确告诉您的shell要在当前目录中执行名为" command "的文件(.被解释为当前目录).

如果您希望能够仅使用它来运行它command,则必须将当前目录添加到您的目录中PATH,或者将可执行文件移动到您已经存在的位置.PATH