IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    在Windows下运行Linux Shell

    战魂小筑发表于 2017-11-27 07:15:00
    love 0

    越来越多的人选择用Mac或者Linux环境进行跨平台项目开发。但是仍然有大部分人习惯于在Windows环境下进行开发,毕竟Windows在各方面使用还是较为方便,特别像文件版本管理(Git,SVN等)

    在跨平台下开发游戏或软件,就需要有一套方便的自动化工具。Windows下需要使用批处理,虽然有PowerShell加持,但这东西学了也不靠谱,只有一个平台能用。大家还是习惯Linux Shell。连Mac平台都可以用Shell,Windows上要做自动化脚本就显得非常尴尬。

    我曾经在项目中使用go编写了一套将配置转为批处理和Linux Shell的工具。使用过程较为复杂,但是能跨平台进行表格导出和协议编译等工作。

    但是,这个工具还是需要对不同的平台编写多套模板进行代码生成,非常繁琐。如果有一套跨平台的Shell,编写一次就可以跨平台运行那该多好。

    查阅资料后,一共有几个方案:

    1. 使用Python作为自动化工具 这个方案其实就是使用python把批处理和Shell干的事情用代码来解决。但前提是要重新学习Python,也需要一部分熟悉简单的Python语法,人为学习成本较高,也比较费事。

    2. 自己编写一套独立的自动化工具 这个方案需要长时间的适配过程,差什么指令补什么指令,对项目进度有一定干扰。

    3. 自己编写Linux Shell的解释器 这个就更难了,要做到100%兼容,基本不可能。

    1. 使用Cygwin和Mingw 需要一个微型运行时进行Linux Shell的解释,msys大概是18M左右,可行性较高。

    在研究Cygwin和Mingw如何整合的过程中,我误操作点击了一个sh后缀的Linux Shell,这是我希望让Mingw运行的Shell。结果呢,sh后缀的文件居然能在Windows下运行。我马上编写了一系列的例子,发现几乎完全兼容常用的Shell指令。 经过研究,我发现Windows下能运行sh文件是由Git自带的msys2提供的。MSYS2 (Minimal SYStem 2, http://www.msys2.org/) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境。同时它也是一个在Cygwin (POSIX 兼容性层) 和 MinGW-w64(从"MinGW-生成")基础上产生的,追求更好的互操作性的 Windows 软件。

    那就是说,只要安装了Git(https://git-scm.com/),那么就可以在Windows下直接运行Linux Shell,只需要将文件后缀命名为sh即可。

    问过周边友人是否知道这一功能,都说知道,只是没有广播而已,害我研究很久……



    战魂小筑 2017-11-27 15:15 发表评论


沪ICP备19023445号-2号
友情链接