いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Goメモ-392 (環境変数周りのメモ-7)(os.Unsetenv, 現在のプロセス内で特定環境変数のクリア)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。

環境変数を扱うときは結構あるのですが、いつも godotenv とかで済ませているので、標準ライブラリを使ったやり方をよく忘れてしまっているので、ここに自分用にメモを残しておくことにしました。どんなプログラム言語でも標準ライブラリをしっかりと理解して扱えることが大事。

今回はos.Unsetenv 。指定された環境変数の値をクリアします。一時的な環境変数を用意する際に、os.Setenv()とペアで利用されることが多いです。

サンプル

package osop

import (
    "os"

    "github.com/devlights/gomy/output"
)

// Unsetenv は、os.Unsetenv() のサンプルです。
//
// 指定された環境変数の値をクリアします。
// 一時的な環境変数を用意する際に、os.Setenv()とペアで以下のように
// よく利用される。
//
// os.Setenv("MYENV", "HELLOWORLD")
// defer os.Unsetenv("MYENV")
//
// # REFERENCES
//
//   - https://pkg.go.dev/os@go1.22.0#Unsetenv
func Unsetenv() error {
    const (
        ENVKEY = "MYENV"
        ENVVAL = "HELLOWORLD"
    )

    var (
        env string
        ok  bool
        err error
    )

    err = os.Setenv(ENVKEY, ENVVAL)
    if err != nil {
        return err
    }

    env, ok = os.LookupEnv(ENVKEY)
    output.Stdoutf("[MYENV(before)]", "VALUE=%q\tOK=%v\n", env, ok)

    err = os.Unsetenv(ENVKEY)
    if err != nil {
        return err
    }

    env, ok = os.LookupEnv(ENVKEY)
    output.Stdoutf("[MYENV(after )]", "VALUE=%q\tOK=%v\n", env, ok)

    return nil

    /*
      $ task
      task: [build] go build .
      task: [run] ./try-golang -onetime

      ENTER EXAMPLE NAME: osop_unsetenv

      [Name] "osop_unsetenv"
      [MYENV(before)]      VALUE="HELLOWORLD" OK=true
      [MYENV(after )]      VALUE=""   OK=false


      [Elapsed] 70.13µs
   */

}

参考情報

Goのおすすめ書籍


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。