阅读 956

如何在 Golang 中获取当前用户名和目录?

有时我们想知道哪个用户正在执行当前程序以及在哪个目录中,我们可以借助Go 标准库的os包中的 user 包来获取所有这些详细信息。

在这篇文章中,我们将探讨三种这样的情况,首先,我们将执行当前进程的用户名注销,然后我们将名称id一起注销,最后我们从执行当前进程的目录中注销。当前程序位于。

获取用户名

要获取username,我们只需调用Current()将返回当前用户的函数。考虑下面显示的代码。


package mainimport (
   "fmt"   "log"   "os/user")func main() {
   currentUser, err := user.Current()
   if err != nil {
      log.Fatalf(err.Error())
   }

   username := currentUser.Username

   fmt.Printf("Username is: %s\n", username)
}

输出结果


如果我们在上面的代码上运行go run main.go命令,那么我们将在终端中得到以下输出。


Username is: apache


获取名称和 ID

要获取用户名和 id,我们分别调用当前用户的Name()Uid()函数。考虑下面显示的代码。


package mainimport (
   "fmt"   "log"   "os/user")func main() {
   currentUser, err := user.Current()
   if err != nil {
      log.Fatalf(err.Error())
   }

   name := currentUser.Name
   id := currentUser.Uid

   fmt.Printf("name is: %s and id is: %s\n", name, id)
}

输出结果


如果我们在上面的代码上运行go run main.go命令,那么我们将在终端中得到以下输出。


name is: Apache and id is: 48


获取当前目录

要获取当前目录,我们只需要调用HomeDir()当前用户的函数即可。考虑下面显示的代码。


package mainimport (
   "fmt"   "log"   "os/user")func main() {
   currentUser, err := user.Current()
   if err != nil {
      log.Fatalf(err.Error())
   }

   dir := currentUser.HomeDir

   fmt.Printf("dir is: %s\n", dir)
}

输出结果


如果我们在上面的代码上运行go run main.go命令,那么我们将在终端中得到以下输出。


dir is: /usr/share/httpd


文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐