在Windows上使用Git Bash 64位的Shell脚本

5

我在一台全新的Windows 10机器上安装了Git Bash 2.5.1 64位版本:

mark@Foo MINGW64 ~/Documents/FsCheck (master)
$ git --version
git version 2.5.1.windows.1

当我列出一个目录的内容时,我可以看到一个shell脚本:
mark@Foo MINGW64 ~/Documents/FsCheck (master)
$ ls
appveyor.yml  build.cmd  build.sh*         Docs/
bin/          build.fsx  Contributors.txt  examples/  FsCheck.sln

为了清晰起见,一些文件和文件夹已被删除。

请注意shell脚本build.sh的扩展名后面有一个星号。在控制台中,它也会以绿色着色,而其他文件则是浅灰色。我以前没有见过这种情况,所以不知道它是否有什么含义。

当我尝试运行该脚本时,我收到了一个错误消息:

mark@Foo MINGW64 ~/Documents/FsCheck (master)
$ build.sh
bash: build.sh: command not found

此外,在任何build文件中都没有选项卡自动完成。

我该如何从Git Bash运行shell脚本?

2个回答

7

您可能已经将ls别名设置为ls -F。所以当一个尾随的星号出现时,这意味着该文件是可执行的。

在POSIX系统中,由于安全原因,您无法直接执行当前目录中的文件。如果您想要执行文件,可以使用以下技巧:

./build.sh

这与 Git Bash(32 位,我想)最近对我起作用的方式不同,但它有效,并且今天我学到了新东西,所以我很高兴。谢谢。 - Mark Seemann
顺便说一句,我刚遇到了同样的错误,在安装了最新的Git并使用MinTTY而不是cmd.exe之后。这对我也起作用了。 - Nikos Baxevanis

1
当然,您可以通过在当前值的结尾添加";."来编辑您的PATH。在mingw64_shell.bat中执行此操作。
SET PATH=%PATH%;.

注意:我正在查看我的MSYS2安装,因此您可能需要查找启动bash的“.bat”文件。 WINDOWS默认路径中“.”在路径前面的最大安全问题是它允许用户覆盖系统可执行文件 - 这将使您的脚本执行一些奇怪的操作,特别是如果您从其他人那里导入它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接