私は次のような小さなシェルスクリプトを書いています。
curl -X POST --header 'Bearer "$(printf user:pass | base64)"' 'https://api.com/v1/auth'
デバッグのためにechoに切り替えます。
echo 'Bearer "$(printf remote-key-sync:2klic-hlqDZPGmqJTwhqVkPubld9ReXAnQSks | base64)"'
しかし、結果は次のようになります。
Bearer "$(printf remote-key-sync:2klic-hlqDZPGmqJTwhqVkPubld9ReXAnQSks | base64)"
--header 'Bearer myBase64String'を送信してサブシェルの結果を一重引用符で囲むようにカールコマンドを更新するにはどうすればよいですか?
答え1
コードをリファクタリングすることから始めましょう。
bearer="Bearer \"$(printf user:pass | base64)\""
curl -X POST --header "$bearer" 'https://api.com/v1/auth'
これで、デバッグ時にパラメータを再引用する必要はありません。
echo curl -X POST --header "$bearer" 'https://api.com/v1/auth'