改行コードを含んだ文字列を環境変数で読み込むときに嵌った話
追記 2018/05/03
twitter で指摘してもらいましたが、シェルだと改行して読み込ませればいけるとのこと
```
— Ichinose Shogo (@shogo82148) 2018年5月2日
HOGE="Hello
World" go run main.go
```
ではダメですか? https://t.co/nkpPkIvlLw
あー試してないな
— こんぼい。 (@Konboi) 2018年5月2日
ただ今回は書いてないのであれだけどAWS Lambdaで設定した環境変数を取りたかったのでこうした感じです
なるほど。確かにコンソールだと一行テキスト…
— Ichinose Shogo (@shogo82148) 2018年5月2日
シェルだと上手く行きます。
やはりコンテキストも含めて書かないと誤解を招くな。 反省
よく考えれば当たり前だなーと思ったけど嵌ったので戒めもこめてメモ
改行を含んだ文字列を環境変数で受け取る
実行するときに
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言語[現場で使える実践テクニック]
posted with amazlet at 18.05.01
技術評論社 (2016-09-09)
売り上げランキング: 7,746
売り上げランキング: 7,746