以前行った秘密情報をSecret Managerに登録するという作業をしたが、登録したファイル内の値の最後に改行が入っていて残念なことになった
ファイルは以下のコマンドで実施したのだが、これだと最後に改行が入ってしまうらしい
$ echo <secret-value> > <data-file>
なので-n
オプションをつける
これで改行を入れないようにできるとのこと
$ echo -n "<secret-value>" > <data-file>
これでおしまいかと思ったが
-n オプションも文字列として出力される
シェルスクリプトを用意して実行した結果、-n <secret-value>
という文字列で出力されてしまっていた
-n
が余計なのだが、linuxコマンドのどのドキュメントを読んでもわからなかった(値を""で囲むのも実施済み)
どうやらMacのシェルの内部コマンドのechoに改行抑制オプションがないらしい
どうやらシェルスクリプトでechoとした場合に呼び出される内部コマンドのechoは改行抑制オプションがないらしい
なので/bin/echo
と絶対パスで外部のechoを呼び出す
$ /bin/echo -n "<secret-value>" > <data-file>
もしくは、シェルスクリプトの先頭を
#!/bin/sh
ではなく
#!/bin/bash
で始める必要があった