golang獲取命令行參數


部署golang項目時難免要通過命令行來設置一些參數,那么在golang中如何操作命令行參數呢?可以使用os庫和flag庫。

 

1、golang os庫獲取命令行參數

os可以通過變量Args來獲取命令參數,os.Args返回一個字符串數組,其中第一個參數就是執行文件本身。

package main
 
import (
    "fmt"
    "os"
)
 
func main() {
    fmt.Println(os.Args)
}

編譯執行后執行

$ ./cmd -user="root"
 [./cmd -user=root]

 

這種方式操作起來要自己封裝,比較費時費勁。golang提供了flag庫,可以很方便的操作命名行參數,下面介紹下flag的用法。

 

 2、golang flag獲取命令行參數

package main
 
import (
    "flag"
    "fmt"
)
 
func main() {
    ok := flag.Bool("ok", false, "is ok")
    id := flag.Int("id", 0, "id")
    port := flag.String("port", ":8080", "http listen port")
    var name string
    flag.StringVar(&name, "name", "123", "name")
 
    flag.Parse()
 
    fmt.Println("ok:", *ok)
    fmt.Println("id:", *id)
    fmt.Println("port:", *port)
    fmt.Println("name:", name)
}

像flag.Int、flag.Bool、flag.String這樣的函數格式都是一樣的,第一個參數表示參數名稱,第二個參數表示默認值,第三個參數表示使用說明和描述。flag.StringVar這樣的函數第一個參數換成了變量地址,后面的參數和flag.String是一樣的。

使用flag來操作命令行參數,支持的格式如下:

-id=1
--id=1
-id 1
--id 1

執行一下:

$ go run flag.go -id=2 -name="golang"
ok: false
id: 2
port: :8080
name: golang

使用-h參數可以查看使用幫助:

$ go run flag.go -h
-id=0: id
-name="123": name
-ok=false: is ok
-port=":8080": http listen port

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM