【发布时间】:2020-01-26 07:57:34
【问题描述】:
我正在尝试从 bash 脚本执行 curl,并在运行 POST curl 命令时返回 curl: (3) 端口号以 ' ' 错误结尾。
例如script.sh 包含以下 curl
curl -k -X -H "content-type: application/json" POST -d
'{\"test_field\": \"test.com\",
\"head\": \"-----BEGIN REQUEST-----\n
MIICvzCCAacCAQAwejgVPmU0J/BUbIuyOC5KXMYkc2KqggRBLpLdKs8ODo5cVKzVa7UOmNGRdGncM1WC0HHnn8E47fYnjmn72WQ94L1kBqJuM+olYbOtyop84lmYo0LTm0DH/w4DBlzUdp4 Z8EYFuRtv1En2TkJ6YxI86z7Bwc/I20HPZPQYEQ4v=\n
-----END CERTIFICATE REQUEST-----\"
}' https://mytestserver/v1/testfield
结果:
curl: (3) Port number ended with ' '
curl: (6) Could not resolve host: POST
{"errors":[]}
如果我从邮递员执行相同的正文内容,它会成功执行。
内容
-----BEGIN REQUEST-----
MIICvzCCAacCAQAwejgVPmU0J/BUbIuyOC5KXMYkc2KqggRBLpLdKs8ODo5cVKzVa7UOmNGRdGncM1WC0HHnn8E47fYnjmn72WQ94L1kBqJuM+olYbOtyop84lmYo0LTm0DH/w4DBlzUdp4 Z8EYFuRtv1En2TkJ6YxI86z7Bwc/I20HPZPQYEQ4v=
-----END REQUEST-----
有空格和 / 特殊字符。我试图逃脱它,但没有成功。
【问题讨论】:
-
不确定您的
curl上下文,但在常规 shell 脚本上下文中,'single-quoted data "dbl-quoted data" should be sufficient'(无需转义 dbl 引号)。祝你好运。