我已经购买了Windows 7 Ultimate,并且喜欢使用它来开发应用程序。缺点(与每个OS一样)是我无法运行Bash脚本。是否可以通过安装某些软件在Windows上运行Bash脚本?如果它不能100%正常运行是可以的,但是只要可以使用最常用的功能就可以了。
我已经购买了Windows 7 Ultimate,并且喜欢使用它来开发应用程序。缺点(与每个OS一样)是我无法运行Bash脚本。是否可以通过安装某些软件在Windows上运行Bash脚本?如果它不能100%正常运行是可以的,但是只要可以使用最常用的功能就可以了。
Answers:
安装Cygwin,其中包括Bash和许多其他GNU和Unix实用程序(如果没有这些实用程序,bash不太可能会非常有用)。
另一个选择是MinGW的MSYS,它包括bash和一小套更重要的实用程序,例如awk。就我个人而言,我更喜欢Cygwin,因为它包含了诸如Perl和Python这样的繁重的工具,我发现我不能没有它们,而MSYS则忽略了这些工具,并假定您将自己安装它们。
已更新:如果有人对此答案感兴趣,并且正在运行MS-Windows 10,请注意,MS-Windows 10具有“ Windows Windows Subsystem For Linux ”功能,该功能启用后即可安装Ubuntu和Windows的用户模式映像。然后在上面运行Bash。这提供了与Ubuntu的100%兼容性,用于调试和运行Bash脚本,但是此设置完全独立于Windows,并且您不能使用Bash脚本与Windows功能(例如进程和API)进行交互,除了通过DrvFS功能对文件的访问受限之外。
mingw32
基本上包含MSYS 的目录。因此,适用于Windows的Git是MinGW,其中包括带有“ nicer”安装程序的Git(它在MSYS安装程序中为可选):superuser.com/a/1362301/10942
我可以找到的最佳选择是Git Windows只需安装它,然后右键单击并单击“此处Git Bash”,这将打开一个bash窗口
和Linux命令工作...
我已经尝试过'sh','vi','ssh','curl'等命令
如果您想要一些本机的东西,则可以使用getGnuWin32安装所有已移植的unix命令行工具。加上winBash,可以为您提供大部分可运行的unix环境。添加console2以获得更好的终端模拟器,您几乎无法在Windows上告诉您!
总的来说,Cygwin是一个更好的工具包,但是由于它和Windows之间的鸿沟,我发现自己遇到了一些意外问题。但是,这些解决方案都没有本地Linux系统那么好。
您可能希望通过选择发行版来研究使用virtualbox创建Linux VM。设置它以与主机os共享文件夹,您可以使用真正的linux开发环境并与Windows共享。只需提防那些EOL标记,它们每次都会得到。
最好的选择?Windows10。本机Bash支持!
cbwin
...进行解决,但这只是解决方法而已。
您始终可以安装Cygwin在Windows下运行Unix Shell。我在Windows XP中广泛使用了Cygwin。
安装git-extensions(https://code.google.com/p/gitextensions/)后,您可以从命令提示符下运行.sh文件。(不需要./script.sh,只需像bat / cmd文件一样运行它即可),也可以使用MinGW Git bash shell在“完整” bash环境中运行它们。
我不是Cygwin的忠实拥护者(是的,我敢肯定它确实很强大),因此在Windows上运行bash脚本而不必为我完美安装它。
bash
从Powershell实例尝试,失败了,安装了git-extensions并重试,它对我有用。
为了本机运行,您可能需要使用Cygwin(如果没有Windows,我将无法生存)。因此,马上行动,为Cygwin +1。其他任何事情都不文明。
话虽这么说,但是我最近开始使用实用程序的组合轻松将Bash脚本移植到Windows,这样我的反Linux同事就可以轻松地运行复杂的任务,这些任务可以由GNU实用程序更好地处理。
通常,我可以在很短的时间内将Bash脚本移植到Batch中,方法是在一个窗格中打开原始脚本,然后在另一窗格中写入Batch文件。我使用的工具如下:
我喜欢UnxUtils而不是GnuWin32,因为[如果我错了,请有人纠正我]通常必须安装GnuWin utils,而UnxUtils是独立的二进制文件,可以直接使用。
但是,CoreUtils不包括一些熟悉的* NIX实用程序,例如cURL,也可用于Windows(curl.haxx.se/download.html)。
我为项目创建一个文件夹,并始终设置SET PATH =。在.bat文件中,因此除了基本CMD Shell命令以外,没有其他命令被引用(以及项目文件夹中特定的UnxUtils,批处理脚本才能正常工作)。
然后,我将所需的CoreUtils .exe文件复制到项目文件夹中,并在.bat文件中引用它们,例如“。\ curl.exe -s google.com”等。
Bat2Exe程序是神奇的地方。批处理文件完成并且已成功测试后,启动Bat2Exe.exe,并指定项目文件夹的路径。Bat2Exe然后将创建一个Windows二进制文件,其中包含该特定文件夹中的所有文件,并将使用它遇到的第一个.bat用作主要可执行文件。您甚至可以包括.ico文件,用作生成的最终.exe文件的图标。
我已经尝试了其中几种类型的程序,并且许多生成的二进制文件都被标记为恶意软件,但是我引用的Bat2Exe版本运行正常,并且生成的.exe文件扫描得很干净。
可以像双击常规批处理文件一样,通过双击以交互方式运行生成的可执行文件,或者从命令行运行带有参数的命令等,不同之处在于您将能够利用通常使用的许多工具的功能。在Bash中。
我意识到这已经花了很长时间,但是如果我有点偏离题格,我还写了一个批处理脚本,称为PortaBashy,我的同事可以从包含便携式Cygwin安装程序的网络共享中启动该脚本。然后,它将%PATH%变量设置为常规* NIX格式(/ usr / bin:/ usr / sbin:/ bin:/ sbin)等,并且可以启动到Bash shell本身,或者启动功能更强大的漂亮的MinTTY终端模拟器。
总是有很多方法可以完成您打算要做的事情。只是结合正确的工具来完成工作,而且很多时候都归结为个人喜好。
理论上还有另一种可能性:专业版Windows具有内置的POSIX支持,因此bash可以本机为Windows编译。
可惜,但是我自己还没有找到一个编译过的人。