簡體   English   中英

獲取標志值失敗

[英]Failed to get flag value

我使用https://github.com/spf13/cobra庫創建了一個小型 Go 應用程序。

我創建了一個新標志-t--token ,當我傳遞這個參數時,我希望應用程序打印它。

這就是我所做的:

func init() {
    fmt.Println("[*] Inside init()")
    var token string
    rootCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "Service account Token (JWT) to insert")
    fmt.Println(token)
}  

但是當我像這樣運行應用程序時它不會打印它:

.\consoleplay.exe --token "hello.token"  

如何打印標志的值。

您無法在init()函數中打印 token 的值,因為init()函數在第一次調用包時在運行時執行。 該值尚未分配。

因此,您必須全局聲明該變量並在rootCmd命令的Run方法中使用它。

var token string

var rootCmd = &cobra.Command{
    Use:    "consoleplay",
    Run: func(cmd *cobra.Command, args []string) {
        fmt.Println(token)
    },
}

func init() {
    rootCmd.Flags().StringVarP(&token, "token", "t", "", "usage")
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM