我想将文件的 Base64 编码 POST 到服务器,将curl
和组合base64
成一个我可以执行的命令。我尝试过以下方法:
curl 'http://localhost:5000/files' -X POST -H 'Content-Type: application/json' -d '{"file": "$(base64 hello.txt)"}'
但它只是 POST 字符串文字"$(base64 hello.txt)"
,而不是替换执行结果base64 hello.txt
。那么我该如何正确地做呢?
答案1
当您使用简单引号时,不会解释任何内容:
~$ echo 'foo:$var bar:$(base64 foo) something'
foo:$var bar:$(base64 foo) something
如果你想要解释,你必须取消引用:
~$ echo 'foo:'$var' bar:'$(base64 foo)' something'
foo:foo bar:Zm9vCg== something
由于您不知道它可以包含什么,所以最好使用双引号:
~$ echo 'foo:'"$var"' bar:'"$(base64 foo)"' something'
foo:foo bar:Zm9vCg== something