如何在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
在Windows
, home
位于:
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