【发布时间】:2016-07-23 21:44:18
【问题描述】:
我在使用带有 MinGW 64 的 Git 2.7.2.windows.1 的 Windows 机器上。
我在C:/path/to/scripts/myScript.sh 中有一个脚本。
如何从我的 Git Bash 实例执行此脚本?
可以将其添加到.bashrc 文件中,然后执行整个 bashrc 文件。
但我想将脚本添加到单独的文件中并从那里执行。
【问题讨论】:
标签: executable git-bash
我在使用带有 MinGW 64 的 Git 2.7.2.windows.1 的 Windows 机器上。
我在C:/path/to/scripts/myScript.sh 中有一个脚本。
如何从我的 Git Bash 实例执行此脚本?
可以将其添加到.bashrc 文件中,然后执行整个 bashrc 文件。
但我想将脚本添加到单独的文件中并从那里执行。
【问题讨论】:
标签: executable git-bash
假设您有一个脚本script.sh。要运行它(使用 Git Bash),请执行以下操作:[a] 在第一行添加“sh-bang”行(例如 #!/bin/bash)并然后[b]:
# Use ./ (or any valid dir spec):
./script.sh
注意:chmod +x 对脚本在 Git Bash 上的可执行性没有任何作用。运行它不会有什么坏处,但它也不会完成任何事情。
【讨论】:
./,(即我不需要运行chmod 命令)。 ./...is explained here
./my_really_complicated_long_script_name_that_I_wish_were_autocompletable.sh)时,它起作用了。记得以./开头。
chmod +x [script] on git-bash (for Windows) does nothing whatsoever。 Git bash 正在寻找 sh-bang (#!/[interpreter]),这就是它用来评估可执行性的方法。因此,这里的答案实际上是错误的,除了需要 ./ 前缀的部分,这对于一般的 unix 来说是正确的。
#!/usr/bin/env sh
这就是 git bash 如何知道文件是可执行的。 chmod a+x 在 gitbash 中什么都不做。 (注意:任何“she-bang”都可以,例如#!/bin/bash等)
【讨论】:
#!被称为shebang,它是由shell解释的内核约定。
如果您希望在 Windows 上从 git bash 提示符执行脚本文件,只需在脚本文件前加上 sh
sh my_awesome_script.sh
【讨论】:
如果你在 Linux 或 ubuntu 上写 ./file_name.sh
而你在 Windows 上只需在文件名之前写 sh sh file_name.sh
【讨论】:
我遇到了类似的问题,但我收到了一条错误消息
无法执行二进制文件
我发现文件名包含非 ASCII 字符。修复这些问题后,脚本在 ./script.sh 上运行良好。
【讨论】:
如果您在 bash 脚本 中运行 export 命令,则上述解决方案可能不会导出任何内容,即使它会运行该脚本。作为替代方案,您可以使用
. script.sh
现在,如果您尝试回显您的 var,它将显示出来。在我的 git bash 上检查我的结果
(coffeeapp) user (master *) capstone
$ . setup.sh
done
(coffeeapp) user (master *) capstone
$ echo $ALGORITHMS
[RS256]
(coffeeapp) user (master *) capstone
$
在question中查看更多详细信息
【讨论】:
如果您像我一样将 .sh 文件的默认打开方式更改为文本编辑器,只要您安装了 git bash 并在路径中,您只需“bash .\yourscript.sh”即可。
【讨论】:
进入目录后,以./myScript.sh 运行它
【讨论】:
我有两个 .sh 脚本来启动和停止我想从 Windows 10 运行的数字海洋服务器。我所做的是:
现在每次我只要双击脚本就运行脚本
【讨论】: