linux - bash - 将变量添加到字符串内的二进制文件

标签 linux bash curl

所以我在 bash 脚本中有一个curl 命令:

#!/bin/bash
curl -s 'http://eamorr.com/?' -H 'Host: eamorr.com' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:36.0) Gecko/20100101 Firefox/36.0' --data-binary $'-----------------------------1024109981087242139340277850\r\nContent-Disposition: form-data; name="target"\r\n\r\n90210\r\n-----------------------------102410998108724213934027785--\r\n'

这对我来说效果很好。

现在,我想尝试 90211,而不是 90210

#!/bin/bash

postcode=90211

curl -s 'http://eamorr.com/?' -H 'Host: eamorr.com' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:36.0) Gecko/20100101 Firefox/36.0' --data-binary $'-----------------------------1024109981087242139340277850\r\nContent-Disposition: form-data; name="target"\r\n\r\n'$postcode'\r\n-----------------------------102410998108724213934027785--\r\n'

这行不通...

我认为这与 --data-binary 字符串前面的 $ 有关?我尝试删除 $,但它不起作用。

我尝试了 $(postcode) 等,但没有成功

最佳答案

问题是您现在错误地引用了邮政编码后面的内容。 \r\n 不以单引号解释,您需要 $'\r\n':

...'$postcode$'\r\n...

关于linux - bash - 将变量添加到字符串内的二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29409924/

相关文章:

Linux 多播 sendto() 性能因本地监听器而降低

linux - 查找在给定时间之间运行的 cron 作业

linux - 如何在 shell 脚本中使用 curl?

linux - MongoDB安装Ubuntu 12.04 LTS报错

linux - Linux 中的 request_mem_region()

bash脚本中的Mysql密码警告

bash - 我可以从 bash 中的 heredoc 读取行吗?

linux - 执行期间的管道数据

python - 不使用 PyCurl 的类似 Curl 的客户端证书发送 : how?

curl - Asp.net Core Docker容器出站HTTPS调用失败