改行コードを含んだ文字列を環境変数で読み込むときに嵌った話

追記 2018/05/03

twitter で指摘してもらいましたが、シェルだと改行して読み込ませればいけるとのこと

やはりコンテキストも含めて書かないと誤解を招くな。 反省


よく考えれば当たり前だなーと思ったけど嵌ったので戒めもこめてメモ

改行を含んだ文字列を環境変数で受け取る

実行するときに

HOGE="Hello\nWorld" go run main.go

こんな感じで環境変数をわたしてあげて

log.Println(os.Getenv("HOGE"))

みたいなコードがあったら

Hello
World

と表示されてほしい

が、実際は改行コードが文字列として認識されて

Hello\nWorld

こう表示される

なので

log.Pritnln(strings.Replace(os.Getenv("HOGE", `\n`, "\n")))

文字列を改行コードに変換してあげる必要がある

以上

みんなのGo言語[現場で使える実践テクニック]
技術評論社 (2016-09-09)
売り上げランキング: 7,746