如何在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

更新於:2021年11月1日

6K+ 閱讀量

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.