为什么不能 Git Bash 运行 我的可执行文件?
Why can't Git Bash run my executable?
我在 git-for-windows Git Bash。我不能 运行 命令行上的可执行文件:
Pedr@Abc-07 MINGW64 /c/dev
$ ls sqlite3.exe
sqlite3.exe*
Pedr@Abc-07 MINGW64 /c/dev
$ sqlite3
bash: sqlite3: command not found
为什么会这样?
到运行当前目录下的一个程序在bash,你把./
放在它的前面。所以在你的情况下:
$ ./sqlite3.exe
当您 运行 sqlite3
时,bash 将在 PATH
环境变量的所有目录中查找与该名称完全相同的程序,默认情况下包括标准/usr/local/bin
等可执行文件的位置,但不是您当前的目录。 See here 了解更多信息。
这是因为您处于 gcc 的 运行time 环境下,这使您支持 Windows 下的本机二进制文件,但您可以 运行 任何 exe 作为 shell 使用./(本地执行)
查看此工具的文档:http://sourceforge.net/p/mingw-w64/wiki2/FAQ/
您的路径缺失 ./
。将它添加到主目录 (/c/Users/username
) 中的 .profile
文件中:
$ cd
$ pwd
/c/Users/username
$ echo 'PATH=$PATH:./' >> .profile
重新启动 bash 会话,瞧!现在 echo $PATH
应该输出 :./
作为最后一项。请注意,您肯定需要将其添加为 last 项以确保安全(例如,防止恶意 ls.exe
)。
我在 git-for-windows Git Bash。我不能 运行 命令行上的可执行文件:
Pedr@Abc-07 MINGW64 /c/dev
$ ls sqlite3.exe
sqlite3.exe*
Pedr@Abc-07 MINGW64 /c/dev
$ sqlite3
bash: sqlite3: command not found
为什么会这样?
到运行当前目录下的一个程序在bash,你把./
放在它的前面。所以在你的情况下:
$ ./sqlite3.exe
当您 运行 sqlite3
时,bash 将在 PATH
环境变量的所有目录中查找与该名称完全相同的程序,默认情况下包括标准/usr/local/bin
等可执行文件的位置,但不是您当前的目录。 See here 了解更多信息。
这是因为您处于 gcc 的 运行time 环境下,这使您支持 Windows 下的本机二进制文件,但您可以 运行 任何 exe 作为 shell 使用./(本地执行) 查看此工具的文档:http://sourceforge.net/p/mingw-w64/wiki2/FAQ/
您的路径缺失 ./
。将它添加到主目录 (/c/Users/username
) 中的 .profile
文件中:
$ cd
$ pwd
/c/Users/username
$ echo 'PATH=$PATH:./' >> .profile
重新启动 bash 会话,瞧!现在 echo $PATH
应该输出 :./
作为最后一项。请注意,您肯定需要将其添加为 last 项以确保安全(例如,防止恶意 ls.exe
)。