我试图为Go客户端应用程序的.kube/config文件指定Windows位置,但没有指定绝对路径。
kubeconfig := flag.String("kubeconfig", "%USERPROFILE%/.kube/config", "location to the Kube config file")
输出量:
panic: runtime error: invalid memory address or nil pointer dereference
当我在cmd中使用echo %USERPROFILE%
时,输出是C:\Users\<username>
,所以我认为这是因为\
和/
在代码和路径中的不同用法。我试图使用\
而不是/
指定路径,但它给出了一个语法错误。
有没有人能给我一个建议,让我在Go语言中使用Windows环境变量来指定路径?
1条答案
按热度按时间vh0rcniy1#
flag.String
的输出本身并不扩展环境变量,但您可以使用os.ExpandEnv
来扩展环境变量。但是os.ExpandEnv
要求您使用Unix表示法来表示环境变量,即$USERPROFILE
或${USERPROFILE}
。您可以使用filepath.Clean
为我们的特定操作系统(在您的情况下为Windows)获取一个干净的文件路径。示例:
这将在Windows上输出以下内容: