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

Lex*_*pez 4 shell 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 中 curl 7.64.1

Cha*_*ffy 8

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


因此,您可以从以下位置更改相关行:

curl "${other_args[@]}" -F "filecontent=$(<file)"
Run Code Online (Sandbox Code Playgroud)

到:

curl "${other_args[@]}" --form-string "filecontent=$(<file)"
Run Code Online (Sandbox Code Playgroud)