Go 使用os包操作環(huán)境變量的方法
Go標(biāo)準(zhǔn)庫提供了非常多實(shí)用的功能,其中就包含了操作環(huán)境變量。
環(huán)境變量是操作系統(tǒng)中用于存儲(chǔ)配置信息的變量,這些信息可以在不同的程序之間共享。它們通常用于存儲(chǔ)系統(tǒng)的全局設(shè)置,如臨時(shí)文件目錄、路徑、默認(rèn)的shell、語言設(shè)置等。
環(huán)境變量通常在程序啟動(dòng)時(shí)就已設(shè)置好,在需要的時(shí)候隨時(shí)讀取。Go使用簡單的幾個(gè)函數(shù)就可以對(duì)環(huán)境變量進(jìn)行增刪查改。下面分別講解。
一、列出所有環(huán)境變量
func Environ() []string
Environ 返回一個(gè)字符串切片的副本,這些字符串代表環(huán)境變量,形式為 “key=value”。
示例:
package main
import (
"fmt"
"os"
)
func main() {
for _, value := range os.Environ() {
fmt.Println(value)
}
}輸出如下(環(huán)境變量的一部分):
GOBIN=d:\Program files\Go\bin"
GOFLAGS=-mod=vendor
GOMODCACHE=D:\go\pkg\mod
GOPATH=D:\go
GOPROXY=https://goproxy.io,direct
...
二、清除所有環(huán)境變量
func Clearenv()
它會(huì)在程序運(yùn)行時(shí)刪除所有環(huán)境變量,程序結(jié)束后,系統(tǒng)環(huán)境變量不會(huì)變化,放心,還在。有些地方說這個(gè)命令很危險(xiǎn),其實(shí)沒什么。
示例:
package main
import (
"fmt"
"os"
)
func main() {
os.Clearenv()
for _, value := range os.Environ() {
fmt.Println(value)
}
}輸出結(jié)果為空,說明該命令起作用了。屏蔽第9行,再次運(yùn)行,系統(tǒng)環(huán)境變量再次列出,和一章節(jié)結(jié)果相同。
三、檢索環(huán)境變量
func LookupEnv(key string) (string, bool)
LookupEnv 檢索由鍵命名的環(huán)境變量的值。如果環(huán)境中有該變量,則返回值(可能為空)以及一個(gè)為真的布爾值。否則,返回的值將為空,布爾值將為假。
示例:
package main
import (
"fmt"
"os"
)
func main() {
goPath, bgExist := os.LookupEnv("GOPATH")
fmt.Println("GOPATH =", goPath, ", bgExist =", bgExist)
luaPath, blExist := os.LookupEnv("LUAPATH")
fmt.Println("LUAPATH =", luaPath, ", blExist =", blExist)
}輸出如下:
GOPATH = D:\go , bgExist = true
LUAPATH = , blExist = false
四、獲取環(huán)境變量
func Getenv(key string) string
Getenv 用于檢索由鍵命名的環(huán)境變量的值。它返回該值,如果變量不存在,則返回空字符串。要區(qū)分空值和未設(shè)置的值,請(qǐng)使用 LookupEnv。
示例:
package main
import (
"fmt"
"os"
)
func main() {
goPath := os.Getenv("GOPATH")
fmt.Println("GOPATH = ", goPath)
}輸出如下:
GOPATH = D:\go
五、設(shè)置環(huán)境變量
func Setenv(key, value string) error
Setenv 設(shè)置由鍵命名的環(huán)境變量的值。如果遇到任何錯(cuò)誤,它將返回該錯(cuò)誤。
示例:
package main
import (
"fmt"
"os"
)
func main() {
err := os.Setenv("TESTENV", "TestValue")
if err != nil {
os.Exit(1)
}
testValue := os.Getenv("TESTENV")
fmt.Println("TESTENV = ", testValue)
}輸出如下:
TESTENV = TestValue
六、刪除環(huán)境變量
func Unsetenv(key string) error
Unsetenv 刪除單個(gè)環(huán)境變量。
示例:
package main
import (
"fmt"
"os"
)
func main() {
err := os.Unsetenv("TESTENV")
if err != nil {
os.Exit(1)
}
testValue := os.Getenv("TESTENV")
fmt.Println("TESTENV = ", testValue)
}輸出為:
TESTENV =
七、展開環(huán)境變量
func ExpandEnv(s string) string
ExpandEnv 會(huì)根據(jù)當(dāng)前環(huán)境變量的值,將字符串中的 ${var} 或 $var 替換掉。對(duì)未定義變量的引用將被空字符串替換。相當(dāng)于不需要os.Getenv了。
示例:
package main
import (
"fmt"
"os"
)
func main() {
os.Setenv("GAME_NAME", "Chronicles of Darkness")
os.Setenv("GAME_DIR", "/usr/games")
fmt.Println(os.ExpandEnv("The $GAME_NAME game is placed in the ${GAME_DIR} path."))
}輸出結(jié)果為:
The Chronicles of Darkness game is placed in the /usr/games path.
以上就是go利用標(biāo)準(zhǔn)庫os操作環(huán)境變量的全部內(nèi)容,學(xué)會(huì)了嗎?
到此這篇關(guān)于Go 如何使用os包操作環(huán)境變量的文章就介紹到這了,更多相關(guān)Go 環(huán)境變量內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- go不同業(yè)務(wù)環(huán)境變量的設(shè)置方式
- 獲取Golang環(huán)境變量的三種方式小結(jié)
- golang 項(xiàng)目打包部署環(huán)境變量設(shè)置方法
- go env環(huán)境變量配置的使用
- 簡單四步快速集成go環(huán)境變量
- Windows上安裝Go并配置環(huán)境變量(圖文步驟)
- GO?env環(huán)境變量配置命令使用
- go語言環(huán)境變量設(shè)置全過程
- Go獲取與設(shè)置環(huán)境變量的方法詳解
- go項(xiàng)目中環(huán)境變量的配置
- Go 使用環(huán)境變量的實(shí)現(xiàn)小結(jié)
相關(guān)文章
Golang實(shí)現(xiàn)Directional Channel(定向通道)
這篇文章主要介紹了Golang實(shí)現(xiàn)Directional Channel(定向通道),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
GO語言中創(chuàng)建切片的三種實(shí)現(xiàn)方式
這篇文章主要介紹了GO語言中創(chuàng)建切片的三種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Go如何在HTTP請(qǐng)求中操作cookie教程詳解
這篇文章主要為大家介紹了Go如何在HTTP請(qǐng)求中操作cookie教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
淺析Golang開發(fā)中g(shù)oroutine的正確使用姿勢(shì)
很多初級(jí)的Gopher在學(xué)習(xí)了goroutine之后,在項(xiàng)目中其實(shí)使用率不高,所以這篇文章小編主要來帶大家深入了解一下goroutine的常見使用方法,希望對(duì)大家有所幫助2024-03-03
Go定時(shí)器的三種實(shí)現(xiàn)方式示例詳解
這篇文章主要為大家介紹了Go定時(shí)器的三種實(shí)現(xiàn)方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
關(guān)于go get 下載第三方包存儲(chǔ)路徑問題
這篇文章主要介紹了關(guān)于go get 下載第三方包存儲(chǔ)路徑問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01

