我正在使用安装了MinGW 64的Git 2.7.2.windows.1的Windows机器。
我有一个脚本在C:/path/to/scripts/myScript.sh
。
如何从我的Git Bash实例中执行这个脚本?
可以将其添加到.bashrc
文件中,然后执行整个bashrc文件。
但是我想将脚本添加到一个单独的文件中并从那里执行它。
我正在使用安装了MinGW 64的Git 2.7.2.windows.1的Windows机器。
我有一个脚本在C:/path/to/scripts/myScript.sh
。
如何从我的Git Bash实例中执行这个脚本?
可以将其添加到.bashrc
文件中,然后执行整个bashrc文件。
但是我想将脚本添加到一个单独的文件中并从那里执行它。
假设您有一个脚本script.sh
。如果要运行它(使用Git Bash),请按照以下步骤操作:[a]在第一行添加“sh-bang”行(例如#!/bin/bash
),然后 [b]:
# Use ./ (or any valid dir spec):
./script.sh
注意:chmod +x
在 Git Bash 中对脚本的可执行性没有任何作用。运行它既不会有任何损害,也不会实现任何目标。
注意:chmod +x
在 Git Bash 中对脚本的可执行性没有任何作用。运行它既不会有任何损害,也不会实现任何目标。
./
(也就是说我不需要运行 chmod
命令)。./...
的含义可以在这里找到解释:https://dev59.com/aWw15IYBdhLWcg3w4_7k. - Nate Anderson./my_really_complicated_long_script_name_that_I_wish_were_autocompletable.sh
),它可以正常运行。记得要以./
开头。 - Ryanchmod +x [script]
根本不起作用。Git Bash需要寻找sh-bang(#!/[interpreter]),并以此来判断文件是否可执行。因此,除了需要在Unix系统下使用./
前缀之外,这个回答实际上是错的。 - Stabledog#!/usr/bin/env sh
这就是git bash如何知道一个文件是否可执行。在gitbash中,chmod a+x
没有任何作用。 (注意:任何"she-bang"都可以使用,例如#!/bin/bash
等)
#!
,这被称为 shebang,是由 shell 解释的内核约定。 - jaques-sam如果你希望在Windows的git bash提示符下执行一个脚本文件,只需在脚本文件前加上sh。
sh my_awesome_script.sh
sh my_awesome_script.sh
对我们两个人都很好用,可以作为 pre-push
钩子(使用husky)。
谢谢! - naorz如果您在Linux或Ubuntu上,请写./file_name.sh
,而如果您在Windows上,则在文件名前面加上sh
,像这样:sh file_name.sh
. script.sh
$ . setup.sh
$ echo $ALGORITHMS
[RS256]
在此问题中查看更多详细信息
进入目录后,只需运行以下命令:./myScript.sh
我曾经遇到了类似的问题,但是我遇到了一个错误信息:
无法执行二进制文件
我发现文件名包含非ASCII字符。当这些字符被修复之后,脚本可以通过./script.sh
正常运行。
如果你像我一样将.sh文件的默认打开方式更改为文本编辑器,那么只需运行"bash .\yourscript.sh"即可(前提是你已经安装了git bash并将其添加到环境变量中)。
在文件顶部加上#!/bin/bash会自动使.sh文件可执行。 我同意chmod命令并没有起到任何作用,但是上述行解决了这个问题。 你可以在gitbash中给出完整的路径来执行它,或者将其添加到PATH变量中 export PATH=$PATH:/path/to/the/script 然后你就可以从任何地方运行它了