golang 基礎庫之 go 獲取命令列引數,介紹了環境變數的獲取與設定以及如何使用預設值
1.12.1
環境變數作為配置選項可以顯著簡化應用的部署,並且這些在雲基礎架構中也是很常見的。
通常,本地和自動構建環境的 資料庫 連線配置是不同的。
如果配置由環境變數定義,則無需更改應用的配置檔案或者程式**。如果環境變數沒有設定,則預設配置也是可以使用的。這樣對於開發人員就容易多了。
建立get.go
檔案,**如下:
package main執行命令import (
"log"
"os"
)func main()
export db_conn=db:/user@example && go run get.go
$ export db_conn=db:/user@example && go run get.go建立2019/05/18 21:33:39 連線:db:/user@example
lookup.go
檔案,**如下:
package main執行命令import (
"fmt"
"log"
"os"
)func main()
fmt.println(connstr)
}
unset db_conn && go run lookup.go
$ unset db_conn && go run lookup.go建立2019/05/18 21:39:33 環境變數 db_conn 沒有設定
main.go
檔案,**如下:
package main執行命令import (
"log"
"os"
)func main()
func getenvdefault(key, defval string) string
return val
}
go run main.go
$ go run main.go環境變數的獲取和設定分別可以通過2019/05/18 21:42:58 值是 :postgres:
2019/05/18 21:42:58 預設值是 :postgres:
os
包中getenv
和setenv
方法實現。方法名稱已經很明確說明了自身的功能。
但getenv
方法有個缺點,即使在未設定環境變數的情況下,它也返回乙個空的字串。
os
包中還有乙個很有用的方法,lookupenv
,該方法返回兩個值,乙個是變數的值,另乙個則是變數在環境中是否設定的布林值。而lookupenv
方法則可以克服上面getenv
的缺點。
當我們要判斷是否設定了環境變數以及實現乙個預設環境變數的方法,都應該使用lookupenv
。因為如果未設定環境變數,則第二個值會返回false
Go環境變數和基礎命令
go語言中有一些重要的環境變數,包括 goroot gopath gobin 還有一些基礎命令也非常重要 go run go build go install windows系統中,可以不配置環境變數,有乙個預設配置 goroot go安裝目錄 gopath go工作目錄 gobin go可執行檔案...
Go學習筆記之環境變數的配置
goroot存放的是go語言安裝的路徑 博主本人安裝在d盤下 則goroot的路徑設定為 gopath是設定工作路徑,go會查詢這個路徑下的檔案,gopath可以設定多個路徑,go會依次從前到後按順序查詢 go projects的目錄結構如下 bin目錄存放可執行檔案,通過命令列 go build ...
Shell eval通過變數獲取環境變數的方法實現
環境中已存在環境變數 user env name user echo bad substitution 很顯然,直接使用 巢狀來獲取值是行不通的 環境中已存在環境變數 user env name user eval echo env name icebergu eval 先將對引數進行變數的替換,然...