CLI 命令列實用程式開發基礎

2021-09-27 10:06:01 字數 3033 閱讀 2607

**傳送門,goonline平台

1. 概述

cli(command line inte***ce)實用程式是linux下應用開發的基礎。正確的編寫命令列程式讓應用與作業系統融為一體,通過shell或script使得應用獲得最大的靈活性與開發效率。linux提供了cat、ls、copy等命令與作業系統互動;go語言提供一組實用程式完成從編碼、編譯、庫管理、產品發布全過程支援;容器服務如docker、k8s提供了大量實用程式支撐雲服務的開發、部署、監控、訪問等管理任務;git、npm等都是大家比較熟悉的工具。儘管作業系統與應用系統服務視覺化、圖形化,但在開發領域,cli在程式設計、除錯、運維、管理中提供了圖形化程式不可替代的靈活性與效率。

2. 基礎知識

3. 實驗過程

(2)了解flag使用方法,使用在pflag.***varp()函式可以將引數的值繫結到相應變數,通過對相應變數和引數檢查,以保證命令合法。

必須含有-snumber和-enumber引數,所有引數值不能超過int最大值,需要開啟的檔案必須存在,必須能夠正常讀寫。

(3)使用io庫的writecloserreadcloser進行對檔案的讀寫。決定是從檔案讀取輸入還是從鍵盤讀取輸入;決定輸出到裝置還是顯示屏。

若沒有重定向和管道(pflag.narg()==1),預設是標準輸入輸出,若輸入有重定向,則從flag接收到的inputfilename將為空,所以讓readcloser=os.stdin,從重定向的輸入獲得輸入檔案。

若輸出沒有重定向,將使用-d的引數值,把結果輸出到指定檔案(cmd.stdout指向該檔案),若檔案不存在將建立,否則覆蓋寫入,或者直接輸出到標準輸出;若輸出有重定向,則-d的引數值將為空,所以讓writecloser=os.stdout,從重定向的輸出獲得檔案。

(4) 進行檔案讀寫,將從readcloser讀取到的內容寫入到writecloser。使用func newreader(rd io.reader) *reader獲得到*bufio.reader,用於駁接readcloser,從檔案中按某種方法讀取內容,例如readline()、readstring(),按照頁內行型別,若有-f引數,則使用readline(『\n』)函式讀取每一行直到eof。

4. 實驗測試

該命令未測試,因為沒有準備印表機響應該命令,同時為-d引數繫結的引數值是輸出檔案路徑,無法作為命令執行。

CLI 命令列實用程式開發基礎

cli command line inte ce 實用程式是linux下應用開發的基礎。正確的編寫命令列程式讓應用與作業系統融為一體,通過shell或script使得應用獲得最大的靈活性與開發效率。linux提供了cat ls copy等命令與作業系統互動 go語言提供一組實用程式完成從編碼 編譯 ...

CLI命令列實用程式開發基礎

cli 命令列介面 實用程式是linux下應用開發的基礎。正確的編寫命令列程式讓應用與作業系統融為一體,通過shell或指令碼來獲得最大的擴充套件與開發效率。linux提供了cat ls,copy等命令與作業系統互動 go語言提供單個實用程式完成從編碼,編譯,庫管理,產品發布全過程支援 容器服務如d...

CLI 命令列實用程式開發基礎

程式說明 程式測試 go online位址 應該允許輸入來自以下兩種方式 command input file command command input file other command command command command output file command other com...