Go 言語の組み込みモジュールを触ってみる-環境変数の取得・設定(os.Getenv、os.Setenv)

はじめに

今回は os パッケージに内包されている、 環境変数を取得したり、設定したりするための組み込み関数 を紹介します。

検証環境

$ uname -moi
x86_64 MacBookPro16,1 Darwin

$ go version
go version go1.16.3 darwin/amd64

インターフェイス

func Getenv(key string) string


func Setenv(key, value string) error

説明

Getenv 関数を使うと、環境変数の名前を指定して値を取得することができます。
Setenv 関数を使うと、環境変数の名前と値を指定して設定することができます。

Getenv は環境変数が設定されていないのか、値が空なのかの区別ができないため、両者を区別したい場合には LookupEnv 関数を使います。

サンプルコード

main.go

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)
}

実行

$ go run main.go
/workdir

false
ABC
true

ひとこと

外部から実行環境ごとの設定の違いを注入するために、環境変数の利用は重要です。

Posted by genzouw