Phi*_*ide 0 bash quoting command-substitution subshell
我正在写一个像这样的小shell脚本:
curl -X POST --header 'Bearer "$(printf user:pass | base64)"' 'https://api.com/v1/auth'
Run Code Online (Sandbox Code Playgroud)
为了调试,我切换到 echo:
echo 'Bearer "$(printf remote-key-sync:2klic-hlqDZPGmqJTwhqVkPubld9ReXAnQSks | base64)"'
Run Code Online (Sandbox Code Playgroud)
但结果是:
Bearer "$(printf remote-key-sync:2klic-hlqDZPGmqJTwhqVkPubld9ReXAnQSks | base64)"
Run Code Online (Sandbox Code Playgroud)
如何更新我的 curl 命令,以便它在单引号内发送 --header 'Bearer myBase64String' 和 subshell 结果?
从重构代码开始。
bearer="Bearer \"$(printf user:pass | base64)\""
curl -X POST --header "$bearer" 'https://api.com/v1/auth'
Run Code Online (Sandbox Code Playgroud)
现在当你去调试时,你不需要再次引用参数。
echo curl -X POST --header "$bearer" 'https://api.com/v1/auth'
Run Code Online (Sandbox Code Playgroud)