命令列編譯執行Go語言時引數代入的問題

2021-06-28 21:24:02 字數 993 閱讀 5179

golang 主要用於伺服器端,於是shell 命令下面的編譯執行就顯得非常重要。在linux下面搭建好golang 環境以後,我們就需要用shell來控制go語言了。熟悉shell的人應該都知道在執行shell指令碼的時候經常會有代入引數的情況,一般格式是 sh test.sh [param...] 就是說在後面加上引數就好。那麼不出意外go也是可以這樣使用的。當然是可以的。並且本文談論的重點就是golang帶引數的編譯執行。

實現這種效果的是os 包。os.args [ ]是乙個 陣列,長度不固定,預設長度是1 ,儲存著 go run test.go 這樣的字串,於是如果我們期待在後面加上引數並且呼叫,那麼就是在os.args 後面進行追加和讀取。先看一段**:

package main

import(

"fmt"

"os")

func main()

上面的檔案儲存為test.go,在命令列執行 go run test.go 1 2   輸出  1 2

這樣就可以解析引數了。看起來很簡單吧,可是這邊存在很嚴重的問題:如果沒有輸入引數怎麼辦?如果輸入引數少於要求引數數目怎麼辦?如果輸入引數多餘要求引數數目怎麼辦?上面的前兩個問題都會出現同樣的錯誤:index out of range ,第三個問題則會直接丟棄第三個引數。這些都是我們不希望看到的,所以必須做好驗證。有人說過 「永遠不要相信使用者的輸入!」意在提醒我們在處理任何和使用者互動的地方都要做好驗證,以備出現無法挽回的失誤。那麼我們要怎麼做?我找到的方法就是去依據len(os.args)去做判斷。在獲取引數之前先去判斷究竟有沒有引數,如果有引數才能進行相關的操作,沒有引數則做出相應的提示。

package main

import(

"fmt"

"os")

func main()

fmt.println(param1,param2)

} else

}這樣就能保證不會出現陣列越界的情況

Go語言命令列編譯與執行

使用go build 在專案目錄下執行go build 在其他路徑下執行go build,需要在後面加上專案的路徑 專案路徑從gopath src後開始寫起,編譯之後的可執行檔案就儲存在當前目錄下 go build o hello.exe 執行go install 先編譯得到乙個可執行檔案 將可執行...

Go語言 獲取命令列引數

部署golang專案時難免要通過命令列來設定一些引數,那麼在golang中如何操作命令行引數呢?可以使用flag庫和os庫。1.flag庫的使用 go語言標準庫提供了用於快迅解析命令列引數的flag包,大致的使用步驟如下 a.通過flag.string flag.bool flag.int 等方式來...

Go語言 獲取命令列引數

想知道更多區塊鏈技術,請搜尋 鏈客區塊鏈技術問答社群 鏈客,有問必答!1.flag庫的使用 go語言標準庫提供了用於快迅解析命令列引數的flag包,大致的使用步驟如下 a.通過flag.string flag.bool flag.int 等方式來定義命令列中需要使用的引數。b.在定義完flag後,通...