战魂小筑

讨论群:309800774 知乎关注:http://zhihu.com/people/sunicdavy 开源项目:https://github.com/davyxu

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  249 随笔 :: 0 文章 :: 506 评论 :: 0 Trackbacks

越来越多的人选择用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即可

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

posted on 2017-11-27 15:15 战魂小筑 阅读(384) 评论(3)  编辑 收藏 引用 所属分类: 游戏开发技术工具使用及设计

评论

# re: 在Windows下运行Linux Shell 2017-11-28 19:45 冬瓜
你可以使用Cmder这个开源工具,集成了ConEnu和git以及大部分linux的命令,支持bash  回复  更多评论
  

# re: 在Windows下运行Linux Shell 2017-11-28 19:45 冬瓜
http://blog.csdn.net/zdhsoft/article/details/78550643 这个是我转贴Cmder的文章  回复  更多评论
  

# re: 在Windows下运行Linux Shell 2017-11-28 21:14 战魂小筑
@冬瓜
好的,感谢提醒  回复  更多评论
  


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理