はじめに
こんばんは。
めっちゃかんたんな備忘録です。
とあるjsonファイルをbase64にして、その結果をとあるファイルに向けて置換したいというシェルスクリプトを書いてたのですが、どうも linux sed unterminated s' command
が取れず悩んでたのですが、しょうもない結果だったので、過去の自分を戒めるために残しておきます。
本題
HASH_DATA=$(base64 ./key.json) sed -i -e "e/KEH_HASH='';/KEY_HASH='${HASH_DATA}';/g" ./params.config
これを実行すると linux sed unterminated s' command
というエラーが出てしまいました。
base64コードを普通に実行したら問題なく変換される。
base64化した結果を変数を使わずにsedで変換しようとすると問題なく成功する。
変数に入れたときだけだめ...?
とうーんうーんと必死に悩んでいたのですが。。。
結果答えとしては、 改行が入っていて変数展開時にエラーが出てた
だけでした。
なので、base64コードを
HASH_DATA=$(base64 -w 0 ./key.json)
にすれば問題なく完了しました...
終わりに
久々にシェルスクリプト触ったので解決に時間かかりました。
現場からは以上です。