咨詢電話:023-6276-4481
熱門文章
電 話:023-6276-4481
郵箱:broiling@qq.com
地址:重慶市南岸區(qū)亞太商谷6幢25-2
越來越多的人選擇用Mac或者Linux環(huán)境進(jìn)行跨平臺(tái)項(xiàng)目開發(fā)。但是仍然有大部分人習(xí)慣于在Windows環(huán)境下進(jìn)行開發(fā),畢竟Windows在各方面使用還是較為方便,特別像文件版本管理(Git,SVN等)
在跨平臺(tái)下開發(fā)游戲或軟件,就需要有一套方便的自動(dòng)化工具。Windows下需要使用批處理,雖然有PowerShell加持,但這東西學(xué)了也不靠譜,只有一個(gè)平臺(tái)能用。大家還是習(xí)慣Linux Shell。連Mac平臺(tái)都可以用Shell,Windows上要做自動(dòng)化腳本就顯得非常尷尬。
我曾經(jīng)在項(xiàng)目中使用go編寫了一套將配置轉(zhuǎn)為批處理和Linux Shell的工具。使用過程較為復(fù)雜,但是能跨平臺(tái)進(jìn)行表格導(dǎo)出和協(xié)議編譯等工作。
但是,這個(gè)工具還是需要對(duì)不同的平臺(tái)編寫多套模板進(jìn)行代碼生成,非常繁瑣。如果有一套跨平臺(tái)的Shell,編寫一次就可以跨平臺(tái)運(yùn)行那該多好。
查閱資料后,一共有幾個(gè)方案:
使用Python作為自動(dòng)化工具 這個(gè)方案其實(shí)就是使用python把批處理和Shell干的事情用代碼來解決。但前提是要重新學(xué)習(xí)Python,也需要一部分熟悉簡單的Python語法,人為學(xué)習(xí)成本較高,也比較費(fèi)事。
自己編寫一套獨(dú)立的自動(dòng)化工具 這個(gè)方案需要長時(shí)間的適配過程,差什么指令補(bǔ)什么指令,對(duì)項(xiàng)目進(jìn)度有一定干擾。
自己編寫Linux Shell的解釋器 這個(gè)就更難了,要做到100%兼容,基本不可能。
使用Cygwin和Mingw 需要一個(gè)微型運(yùn)行時(shí)進(jìn)行Linux Shell的解釋,msys大概是18M左右,可行性較高。
在研究Cygwin和Mingw如何整合的過程中,我誤操作點(diǎn)擊了一個(gè)sh后綴的Linux Shell,這是我希望讓Mingw運(yùn)行的Shell。結(jié)果呢,sh后綴的文件居然能在Windows下運(yùn)行。我馬上編寫了一系列的例子,發(fā)現(xiàn)幾乎完全兼容常用的Shell指令。 經(jīng)過研究,我發(fā)現(xiàn)Windows下能運(yùn)行sh文件是由Git自帶的msys2提供的。MSYS2 (Minimal SYStem 2, http://www.msys2.org/) 是一個(gè)MSYS的獨(dú)立改寫版本,主要用于 shell 命令行開發(fā)環(huán)境。同時(shí)它也是一個(gè)在Cygwin (POSIX 兼容性層) 和 MinGW-w64(從"MinGW-生成")基礎(chǔ)上產(chǎn)生的,追求更好的互操作性的 Windows 軟件。
那就是說,只要安裝了Git(https://git-scm.com/),那么就可以在Windows下直接運(yùn)行Linux Shell,只需要將文件后綴命名為sh即可。