Golang 如何获得当前的用户名和目录

Golang 如何获得当前的用户名和目录

有时,我们想知道哪个用户在执行当前程序,在哪个目录下,我们可以在Go标准库的 os 包内的user包的帮助下获得所有这些细节。

在这篇文章中,我们将探讨三种情况,首先,我们将注销正在执行当前程序的 用户名 ,然后我们将注销 名字ID ,最后,我们将注销当前程序所在的 目录

获取用户名

要获得 用户名 ,我们只需调用 Current() 函数,它将返回当前用户。请看下面的代码。

package main

import (
   "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 main

import (
   "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 main

import (
   "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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程