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

我如何在Windows 7命令提示符下运行.sh? 我总是遇到这个错误,当我尝试在其中运行这条线时,

app/build/build.sh 

错误,

 'app' is not recognized... 

要么,

 bash app/build/build.sh 

错误,

 'bash' is not recognized... 

任何想法我错过了什么?

这里的屏幕抓取, 在这里输入图像说明

该错误消息表明您尚未安装bash ,或者它不在您的PATH

最热门的谷歌命中是http://win-bash.sourceforge.net/,但你也需要明白,大多数Bash脚本需要类Unix的环境;; 所以安装Bash可能不会让你运行你在网上find的脚本,除非它是专门为这个特定的使用场景devise的。 通常的解决scheme是https://www.cygwin.com/,但有很多可能的select,取决于你想要完成的是什么。;

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

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

安装GIT 。 在安装GIT期间,通过select它的选项,将GIT Bash添加到Windows上下文菜单。 安装后右键单击你的文件夹,selectGIT Bash Here (见附图),并使用你的sh命令,例如:

 sh test.sh 

在这里输入图像说明

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

 C:\>sh my-script-test.sh 

其他不错的select是安装CygWin

Windowshome位于:

 C:\cygwin64\home\[user] 

例如我执行我的my-script-test.sh文件使用bash命令为:

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

Windows中的新function – 在Windows上的ubuntu上运行bash – 在Windows 10中可用“内部人员”在构build会议之后构build:

https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/

你也可以使用cmder

Cmder是一个软件包,由于在Windows上没有很好的控制台模拟器而被纯粹的挫败所创造出来。 它是基于惊人的软件,并joinMonokai色彩scheme和自定义提示布局,从一开始看起来性感

截图

cmder.net

我个人使用这个batch file,但它需要安装CygWin(64位如图所示)。 只要将文件types.SH与这个batch file(在我的情况下是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上通过Ubuntu上的bash运行shell命令更加容易

我试图设置我的地区为我的x-wrt ​​r7000 netgear路由器,我发现下面的工作对我来说,在Windows上使用bash在Ubuntu上,你必须启用Windowsfunction的子系统,dev模式

 ssh admin@192.168.1.1 < /mnt/c/ccode-eu.sh