如何在Windows命令提示符下运行.sh?

如何在Windows命令提示符下运行.sh?,windows,bash,command-line,sh,Windows,Bash,Command Line,Sh,如何在Windows 7命令提示符下运行.sh?当我尝试在其中运行这一行时,总是会出现此错误 app/build/build.sh 错误 'app' is not recognized... 'bash' is not recognized... 或者 错误 'app' is not recognized... 'bash' is not recognized... 你知道我错过了什么吗 这里是屏幕抓图, 错误消息表示您尚未安装bash,或者它不在路径中 Google最受欢迎的是,但您

如何在Windows 7命令提示符下运行.sh?当我尝试在其中运行这一行时,总是会出现此错误

app/build/build.sh
错误

'app' is not recognized...
'bash' is not recognized...
或者

错误

'app' is not recognized...
'bash' is not recognized...
你知道我错过了什么吗

这里是屏幕抓图,

错误消息表示您尚未安装
bash
,或者它不在
路径中

Google最受欢迎的是,但您还需要了解,大多数Bash脚本都希望有一个类似Unix的环境;因此,仅仅安装Bash可能不太可能让您运行在网络上找到的脚本,除非它是专门为这种特定的使用场景设计的。通常的解决方案是,根据您想要实现的具体目标,有许多可能的替代方案

如果Windows不是您使用场景的核心,那么安装免费操作系统(可能是虚拟化的)可能是最简单的方法


第二条错误消息是由于Windows名义上接受正斜杠作为目录分隔符,但在此上下文中,它被解释为开关分隔符。换句话说,Windows将您的命令行解析为
app/build/build.sh
(或者,用Unix选项约定来解释,
app--build--build.sh
)。您可以尝试
app\build\build.sh
,但由于上述情况,该方法不太可能工作。

运行文件的最常见方法是使用sh命令:

C:\>sh my-script-test.sh 
另一个好的选择是安装

Windows
中,
home
位于:

C:\cygwin64\home\[user]
例如,我使用以下命令执行我的
my script test.sh
文件:

jorgesys@INT024P ~$ bash /home/[user]/my-script-test.sh 

Windows中的新功能-在Windows上的ubuntu上运行bash-在构建会议后的Windows 10“内部人员”构建中提供:

安装。在安装GIT的过程中,通过选择GIT Bash的选项将其添加到windows上下文菜单中。安装完成后,在文件夹中右键单击,选择此处的GIT Bash
(参见附件pic),然后使用sh命令,例如:

sh test.sh

在Windows 10周年纪念更新中,在Windows上的ubuntu上用bash运行shell命令更容易

我试图为我的x-wrt r7000 netgear路由器设置我的区域,我发现下面的方法对我有效,在windows上的ubuntu上使用bash,您必须启用windows功能中的子系统,并在windows上启用开发模式

ssh admin@192.168.1.1 < /mnt/c/ccode-eu.sh
sshadmin@192.168.1.1
您也可以使用cmder

Cmder是一个软件包,它的创建完全出于对Windows上缺少优秀控制台模拟器的失望。这是基于惊人的软件,并与莫诺凯配色方案和自定义提示布局香料,从一开始看起来性感


我个人使用了这个批处理文件,但它确实需要安装CygWin(如图所示为64位)。 只需将文件类型.SH与这个批处理文件(在我的例子中是ExecSH.BAT)相关联,就可以双击.SH并运行它

@echo off
setlocal

if not exist "%~dpn1.sh" echo Script "%~dpn1.sh" not found & goto :eof

set _CYGBIN=C:\cygwin64\bin
if not exist "%_CYGBIN%" echo Couldn't find Cygwin at "%_CYGBIN%" & goto :eof

:: Resolve ___.sh to /cygdrive based *nix path and store in %_CYGSCRIPT%
for /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%~dpn1.sh"') do set _CYGSCRIPT=%%A
for /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%CD%"') do set _CYGPATH=%%A

:: Throw away temporary env vars and invoke script, passing any args that were passed to us
endlocal & %_CYGBIN%\mintty.exe -e /bin/bash -l -c 'cd %_CYGPATH%;  %_CYGSCRIPT% %*'

基于原始工作。

我在Windows 10中使用Windows 10 Bash shell又名Linux子系统又名Ubuntu作为指导

在Windows操作系统中安装
GitBash
工具。在Git安装的系统环境变量中设置以下路径

\Git\bin

\Git\usr\bin


cmd
窗口中键入“sh”,重定向到Bourne shell并在终端中运行您的命令。

只需安装git并通过“bash”运行您的.sh文件。

您是否尝试过将
cd
复制到
.sh
所在的根目录,以便从那里执行它,而不是像你在问题中那样写下文件的路径

像这样:

$ cd app/build
$ build.sh

你需要cygwin(可能)。您正在尝试在Windows上运行SHELL(.sh)脚本,这是我在Windows上运行
.sh
文件的唯一方法。除非您采取特殊措施,否则在Windows上不会有
sh
命令。确定-1,您的意思是我必须添加一个教程才能从命令行访问sh吗???您的答案显示为您希望能够在任意Windows命令提示符下键入
sh
,并使其工作。msys2是获取sh命令的好地方。如果您想将其与cmdBash一起使用,请查看。如果您选择“安装Bash”安装选项,则Git4Windows将安装
sh
命令。尽管它似乎附带了一个可选的附加包,其中包括常见的Unix shell命令,但基本包似乎只是
cmd
的替代品。它对我不起作用。命令提示符窗口打开,然后快速关闭。如果安装了GIT,则可以将路径添加到PATH系统变量
sh.exe
。在我的例子中是:
c:\ProgramFiles\Git\bin
。然后从PowerShell运行
sh.\script.sh
。这对我来说就像2020年Windows 10中的一个魅力!虽然复制/粘贴命令对我不起作用,因为它设置为固定的
ctrl-ins
shift-ins
很酷,但是如何使用
bash运行
sh
文件呢?如果我尝试这样做,窗口就会闪烁并消失。如果我将文件拖放到打开的bash窗口中,它会说找不到路径(因为它使用不同的约定)。现在是否可以在Windows上运行.sh文件?我现在不能尝试,但我对它感兴趣。我自己也没有尝试过,但是微软有一个关于如何在windows上运行sh的指南:@m93a在Ubuntu终端窗口中,
bash path/to/script
运行脚本。Ubuntu中当然也有
sh
。如果脚本具有适当的shebang和权限,只需使用shebang.May运行中指定的Rnterpter来运行脚本。但是它是一个完全不同的环境。当然,在Windows 10中,您可以启用WSL,并且在您的Windows中几乎有一台真正的计算机。Git Bash随附。