引号内的子外壳

引号内的子外壳

我正在编写一个像这样的小 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'

相关内容