如何在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
广告
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP