はじめに
今回は os パッケージに内包されている、 環境変数を取得したり、設定したりするための組み込み関数 を紹介します。
検証環境
1
2
3
4
5
| $ uname -moi
x86_64 MacBookPro16,1 Darwin
$ go version
go version go1.16.3 darwin/amd64
|
インターフェイス
1
| func Getenv(key string) string
|
1
| func Setenv(key, value string) error
|
説明
Getenv 関数を使うと、環境変数の名前を指定して値を取得することができます。
Setenv 関数を使うと、環境変数の名前と値を指定して設定することができます。
Getenv は環境変数が設定されていないのか、値が空なのかの区別ができないため、両者を区別したい場合には LookupEnv 関数を使います。
サンプルコード
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| package main
import (
"log"
"os"
)
func main() {
// ログ出力フォーマットを調整
log.SetFlags(0)
// 1. 環境変数 PWD を取得
pwd := os.Getenv("PWD")
log.Println(pwd)
// 2. 環境変数 VAR1 を取得
var var1 string
var ok bool
var1 = os.Getenv("VAR1")
log.Println(var1)
var1, ok = os.LookupEnv("VAR1")
log.Println(ok)
// 3. 環境変数 VAR1 を設定→取得
err := os.Setenv("VAR1", "ABC")
if err != nil {
log.Fatal(err)
}
var1 = os.Getenv("VAR1")
log.Println(var1)
var1, ok = os.LookupEnv("VAR1")
log.Println(ok)
}
|
実行
1
2
3
4
5
6
| $ go run main.go
/workdir
false
ABC
true
|
ひとこと
外部から実行環境ごとの設定の違いを注入するために、環境変数の利用は重要です。