Go語言 flag Go的命令列引數 命令列處理

2021-07-14 20:53:31 字數 3439 閱讀 6822

1.命令列引數(命令列引數是指定程式執行引數的乙個常見方式。例如,go run hello.go,程式 go 使用了 run 和 hello.go 兩個引數。)

package main

import "os

"import

"fmt

"func main()

/*要實驗命令列引數,最好先使用 go build 編譯乙個可執行二進位制檔案

$ go build command-line-arguments.go

$ ./command-line-arguments a b c d

[./command-line-arguments a b c d]

[a b c d]

c*/

2.命令列標誌(

使用標記的命令列處理方法,命令列標誌是命令列程式指定選項的常用方式。例如,在 wc -l 中,這個 -l 就是乙個命令列標誌。)

package main

//go 提供了乙個 flag 包,支援基本的命令列標誌解析。我們將用這個包來實現我們的命令列程式示例。

import "

flag

"import

"fmt

"func main()

/*測試這個程式前,最好將這個程式編譯成二進位制檔案,然後再執行這個程式。

$ go build command-line-flags.go

word: opt

numb: 7

fork: true

svar: flag

tail:

注意到,如果你省略乙個標誌,那麼這個標誌的值自動的設定為他的預設值。

$ ./command-line-flags -word=opt

word: opt

numb: 42

fork: false

svar: bar

tail:

位置引數可以出現在任何標誌後面。

$ ./command-line-flags -word=opt a1 a2 a3

word: opt

...tail: [a1 a2 a3]

注意,flag 包需要所有的標誌出現位置引數之前(否則,這個標誌將會被解析為位置引數)。

$ ./command-line-flags -word=opt a1 a2 a3 -numb=7

word: opt

numb: 42

fork: false

svar: bar

trailing: [a1 a2 a3 -numb=7]

使用 -h 或者 --help 標誌來得到自動生成的這個命令列程式的幫助文字。

$ ./command-line-flags -h

usage of ./command-line-flags:

-fork=false: a bool

-numb=42: an int

-svar="bar": a string var

-word="foo": a string

如果你提供乙個沒有使用 flag 包指定的標誌,程式會輸出乙個錯誤資訊,並再次顯示幫助文字。

$ ./command-line-flags -wat

flag provided but not defined: -wat

usage of ./command-line-flags:

...*/

1.命令列引數(命令列引數是指定程式執行引數的乙個常見方式。例如,go run hello.go,程式 go 使用了 run 和 hello.go 兩個引數。)

package main

import "os

"import

"fmt

"func main()

/*要實驗命令列引數,最好先使用 go build 編譯乙個可執行二進位制檔案

$ go build command-line-arguments.go

$ ./command-line-arguments a b c d

[./command-line-arguments a b c d]

[a b c d]

c*/

2.命令列標誌(

使用標記的命令列處理方法,命令列標誌是命令列程式指定選項的常用方式。例如,在 wc -l 中,這個 -l 就是乙個命令列標誌。)

package main

//go 提供了乙個 flag 包,支援基本的命令列標誌解析。我們將用這個包來實現我們的命令列程式示例。

import "

flag

"import

"fmt

"func main()

/*測試這個程式前,最好將這個程式編譯成二進位制檔案,然後再執行這個程式。

$ go build command-line-flags.go

word: opt

numb: 7

fork: true

svar: flag

tail:

注意到,如果你省略乙個標誌,那麼這個標誌的值自動的設定為他的預設值。

$ ./command-line-flags -word=opt

word: opt

numb: 42

fork: false

svar: bar

tail:

位置引數可以出現在任何標誌後面。

$ ./command-line-flags -word=opt a1 a2 a3

word: opt

...tail: [a1 a2 a3]

注意,flag 包需要所有的標誌出現位置引數之前(否則,這個標誌將會被解析為位置引數)。

$ ./command-line-flags -word=opt a1 a2 a3 -numb=7

word: opt

numb: 42

fork: false

svar: bar

trailing: [a1 a2 a3 -numb=7]

使用 -h 或者 --help 標誌來得到自動生成的這個命令列程式的幫助文字。

$ ./command-line-flags -h

usage of ./command-line-flags:

-fork=false: a bool

-numb=42: an int

-svar="bar": a string var

-word="foo": a string

如果你提供乙個沒有使用 flag 包指定的標誌,程式會輸出乙個錯誤資訊,並再次顯示幫助文字。

$ ./command-line-flags -wat

flag provided but not defined: -wat

usage of ./command-line-flags:

...*/

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後,通...

go語言cli命令列互動

預先準備 go get github.com spf13 cobra 執行rootcmd命令,在main被呼叫 func execute var cfgfile string func init func initconfig else 在home資料夾中搜尋以 yaml 為名稱的config co...