有没有办法阻止 cURL 命令在 macOS Catalina 中解释分号?

Is there a way to keep a cURL command from interpreting a semicolon in macOS Catalina?

运行 如下所示的用于上传文件内容(通过填写表格)的 cURL 命令 curl -L -X POST -F 'edit=filename' http://website.local/example -F 'filecontent=test;2;3' 可以在 High Sierra 上运行,但不能在 Catalina 上运行

Catalina 一直停在分号 ; 处并忽略其余部分,因为它正在解释分号并输出:

Warning: skip unknown form field: 2 Warning: skip unknown form field: 3

我尝试了不同的方法,比如转义它 \; 和单引号,但仍然没有成功,还尝试更改为 bash 或 zsh 以外的其他 shell。

按照示例 curl -F 'colors="red; green; blue";type=text/x-myapp' example.com 的工作原理,我现在正尝试从文件中读取内容。适用于 High Sierra 的代码是 -F "filecontent=$(<Example.txt)"

我正在上传的文件包含分号,它会上传直到第一个分号的文本

High Sierra 中的 curl 7.54.0
在 Catalina 中卷曲 7.64.1

--form 更改为 --form-string 以防止解析 ;key=value(用于 ;type=text/x-myapp 赋值)。


因此,您可以更改相关行:

curl "${other_args[@]}" -F "filecontent=$(<file)"

至:

curl "${other_args[@]}" --form-string "filecontent=$(<file)"