引用符内のサブシェル

引用符内のサブシェル

私は次のような小さなシェルスクリプトを書いています。

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'

おすすめ記事