**傳送門,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庫的writecloser
和readcloser
進行對檔案的讀寫。決定是從檔案讀取輸入還是從鍵盤讀取輸入;決定輸出到裝置還是顯示屏。
若沒有重定向和管道(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...