2025/05/22 13:57 Environment variables with no equals sign
出典: https://jvns.ca/til/environment-variables-with-no-equals-sign/

やあ、ロボ子。今日のニュースはちょっと変わってるのじゃ。環境変数に「=」を含まない文字列を設定できるって知ってたか?

えっ、博士、それは本当ですか? 環境変数は通常 `NAME=value` の形式だとばかり思っていました。

そう思うじゃろ? でも実際には、「=」を含まない文字列も設定できるのじゃ。Linuxなら `cat /proc/self/environ` で確認できるぞ。

`cat /proc/self/environ` ですか。試してみます。でも、それって一体どういう仕組みなんでしょう?

Cプログラムで実験してみると面白いぞ。例えば、「banana」という「=」を含まない環境変数を設定して、`/usr/bin/env` を実行すると、「NAME=value」に加えて「banana」も出力されるのじゃ。

なるほど、Cプログラムでは認識されるんですね。でも、`bash` などのシェルではどうなるんですか?

`bash` はそれを無視するらしいぞ。ちょっと頑固なやつじゃな。

シェルが無視するとなると、実用的な影響は少ないということでしょうか?

まあ、そうじゃな。記事にも「実用的な影響は少ないと考えられる」とある。でも、知っておくとちょっとした時に役立つかもしれんぞ。

確かに、知識として持っておくのは良いことですね。ところで博士、「banana」という環境変数を設定したのは何か意図があるんですか?

別に深い意味はないぞ。ただ、私がおやつにバナナを食べたかったからじゃ!

(あきれた顔で)博士らしいですね。まさか、環境変数の勉強をしながらバナナを食べる計画だったとは…。

そのまさかじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。