Go-lang 自習 10日目「コマンドライン引数」
Go言語自習の10日目です。コマンドライン引数を受け取ってパースします。
os.Args
os.Argsでコマンドライン引数がstringの配列で取得できます。
https://gobyexample.com/command-line-arguments
func main() {
args := os.Args
fmt.Println(args)
Package flag
flagパッケージは、ls -la のように lsコマンドに渡す -laのようなフラグ形式の引数を設定できるパッケージ。
https://gobyexample.com/command-line-flags
https://golang.org/pkg/flag/
コマンドライン引数の種類はこちらを参考にします。
cli-kintone https://github.com/kintone/cli-kintone
.envファイルで設定していた部分を -a 1 のようにコマンドラインから受け取れるように変更していきます。
flag.String
文字列を受け取るフラグを追加します。
var aFlagPtr = flag.String("a", "0", "App ID (default: 0)")
flag.StringVar
flag.Stingを利用する他に、flag.StringVar()関数を使うこともできます。
var dstrvar string
flag.StringVar(&dstrvar, "d", "subdomain", "Domain name")
flag.Parse()
フラグを設定したら、flag.Parse()で引数をパースします。
func main() {
var aFlagPtr = flag.String("a", "0", "App ID (default: 0)")
var dstrvar string
flag.StringVar(&dstrvar, "d", "subdomain", "Domain name")
flag.Parse()
fmt.Println("App ID:", *aFlagPtr)
fmt.Println("Domain name:", dstrvar)
/* 省略 */
}
引数を渡して結果を確認します。
-h でUsageも表示されます。
$ ./yaclik -h
Usage of ./yaclik:
-a string
App ID (default: 0) (default "0")
-d string
Domain name (default "subdomain")
$ ./yaclik -a 1 -d hoo
App ID: 1
Domain name: hoo
この記事が気に入ったらサポートをしてみませんか?