我正在编写一个像这样的小 shell 脚本:
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)"
如何更新我的curl命令,以便它发送--header'Bearer myBase64String',并将子shell结果放在单引号内?
答案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'