Golang 获取当前可执行文件名
程序员文章站
2022-04-27 08:15:24
...
如果编译好的文件修改了文件名,又希望能正确打印usage信息等,就可以通过动态获取当前可执行程序文件名实现:
func main() {
path,_ := os.Executable()
_,exec := filepath.Split(path)
cmd := cobra.Command{
Use: exec,
Short: "",
Long: "",
Example: "",
Run: func(cmd *cobra.Command, args []string) {
if len(args) == 0 {
cmd.Help()
return
}
},
ValidArgs: nil,
ValidArgsFunction: nil,
}
if err := cmd.Execute(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}
编译后修改可执行程序为newName,执行可打印处正确的当前程序名:
./newName
Usage:
newName [flags]
Flags:
-h, --help help for newName