使用Golang編寫命令行工具

概要

日常工作有時候需要編寫命令行工具檀轨,相比Python這樣的腳本語言瓢宦,Golang可以直接編譯成二進(jìn)制文件,運行時不用依賴于環(huán)境否过。同時Golang也支持交叉編譯,可以在Mac惭蟋,Linux等多個環(huán)境下執(zhí)行苗桂。

開發(fā)準(zhǔn)備

Golang需要我們安裝Go的開發(fā)環(huán)境。當(dāng)前我們可以去 https://golang.google.cn/ 下載最新的Golang環(huán)境告组。
安裝了Golang環(huán)境后煤伟,可能因為國內(nèi)網(wǎng)絡(luò)的原因無法下載第三方的包。比較好的方法是借助Go的proxy:https://goproxy.io/

編譯運行

使用 go build 來編譯源文件木缝,使用 go run來運行源文件便锨。
例如,我們要編譯 main.go 文件

go build main.go

依賴管理

Golang從1.11開始有了官方的依賴管理工具Go Modules我碟,詳細(xì)的入門可以參考這里. 在工程目錄下建立一個go.mod文件來管理這個項目的依賴放案。

一些簡單的規(guī)則

golang的模塊有package的概念, 同一個package的文件是具有可見性。

源文件命名的規(guī)則:golang的源文件大都是小寫蛇形命名, 比如 hello.go, 而 hello_test.go 則是hello.go的測試代碼矫俺。

函數(shù)規(guī)則:文件中的函數(shù)以駝峰式命名吱殉,首字母大寫的函數(shù)說明是供外部模塊調(diào)用的。

常用的模塊

  • 如果你要編寫的命令行工具需要借助其他的shell命令來實現(xiàn)厘托,就需要用到exec模塊

  • 創(chuàng)建命令行工具常常會需要對命令行的參數(shù)進(jìn)行解析友雳,需要用到 flag模塊

  • 因為有些處理比較耗時,所以也可能會需要使用Golang的goroutine(協(xié)程)特性催烘。

其他編寫命令行工具時常用的第三方模塊:

其他tips

當(dāng)使用 main.go 調(diào)用其他文件時沥阱,會發(fā)現(xiàn)函數(shù)找不到的問題.
如果使用命令行缎罢,可以使用go install代替go build就可以編譯了伊群。
如果需要使用goland,可以將 run 和 debug 配置中的 [Run kind] 由 File 改變成 Directory策精,并且填上 Directory 就可以了舰始。

image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市咽袜,隨后出現(xiàn)的幾起案子丸卷,更是在濱河造成了極大的恐慌,老刑警劉巖询刹,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谜嫉,死亡現(xiàn)場離奇詭異萎坷,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)沐兰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門哆档,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人住闯,你說我怎么就攤上這事瓜浸。” “怎么了比原?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵插佛,是天一觀的道長。 經(jīng)常有香客問我量窘,道長雇寇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任蚌铜,我火速辦了婚禮谢床,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘厘线。我一直安慰自己识腿,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布造壮。 她就那樣靜靜地躺著渡讼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耳璧。 梳的紋絲不亂的頭發(fā)上成箫,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機(jī)與錄音旨枯,去河邊找鬼蹬昌。 笑死,一個胖子當(dāng)著我的面吹牛攀隔,可吹牛的內(nèi)容都是我干的皂贩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼昆汹,長吁一口氣:“原來是場噩夢啊……” “哼明刷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起满粗,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤辈末,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挤聘,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡轰枝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了组去。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狸膏。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖添怔,靈堂內(nèi)的尸體忽然破棺而出湾戳,到底是詐尸還是另有隱情,我是刑警寧澤广料,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布砾脑,位于F島的核電站,受9級特大地震影響艾杏,放射性物質(zhì)發(fā)生泄漏韧衣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一购桑、第九天 我趴在偏房一處隱蔽的房頂上張望畅铭。 院中可真熱鬧,春花似錦勃蜘、人聲如沸硕噩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炉擅。三九已至,卻和暖如春阳惹,著一層夾襖步出監(jiān)牢的瞬間谍失,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工莹汤, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留快鱼,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓纲岭,卻偏偏與公主長得像抹竹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子荒勇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355