我使用 Go 为各种平台编译一个程序,并通过调用相对路径或仅通过其名称(如果它在 PATH 变量中)来运行它。
是否有可能找出可执行文件的位置?
比如说,我的程序叫做“ foo
(.exe
)”。我可以运行./foo
, foo
(如果它在 PATH 中), ../../subdir/subdir/foo
.
我尝试过使用os.Args[0]
,我想我应该检查程序名称是否包含除“foo”之外的其他内容。如果是,使用filepath.Abs
,如果不是,使用(我找不到函数名,有一个函数可以通过 PATH 来检查程序在哪里)。