UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【GCP Secrets Manager】アップロードしたファイルの最後に改行が入っていて残念なことに

以前行った秘密情報をSecret Managerに登録するという作業をしたが、登録したファイル内の値の最後に改行が入っていて残念なことになった

uga-box.hatenablog.com

ファイルは以下のコマンドで実施したのだが、これだと最後に改行が入ってしまうらしい

$ 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

で始める必要があった

参考

【 echo 】コマンド――メッセージや環境変数を表示する:Linux基本コマンドTips(113) - @IT