linux - linux中的curl命令执行-globbing错误
问题描述
我有以下在 linux 上运行的代码。即使 json 格式化程序是正确的,它也会引发很多错误。
curl -o -skd { "jsonrpc": "2.0", "method": "addAction", "params":{"action":{"id": "Syslog","name": "Syslog Action","isSystem": false,"type": "SendSyslogMessage","arguments": [{"key": "SyslogServerName","value": "10.41.155.233"},{"key": "SyslogServerUseTcp","value": "0"},{"key": "SyslogServerUseTls","value": "0"},{"key": "SyslogServerNoBsdCompat","value": "0"},{"key": "SyslogServerCaCertChain","value": ""},{"key": "SyslogServerAllowOffTimeRangeCerts","value": "0"},{"key": "SyslogServerPort","value": "514"}]}},"id": 1}
错误:-
Warning: The file name argument '-skd' looks like a flag.
curl: (3) [globbing] unmatched brace in column 1
curl: (6) Could not resolve host: jsonrpc
curl: (6) Could not resolve host: 2.0,
curl: (6) Could not resolve host: method
curl: (6) Could not resolve host: addAction,
curl: (3) [globbing] nested brace in column 16
curl: (6) Could not resolve host: Syslog,name
curl: (3) Host name 'Syslog Action,isSystem' contains bad letter
curl: (6) Could not resolve host: false,type
curl: (6) Could not resolve host: SendSyslogMessage,arguments
curl: (3) [globbing] bad range specification in column 2
curl: (6) Could not resolve host: SyslogServerName,value
curl: (3) [globbing] unmatched close brace/bracket in column 14
curl: (6) Could not resolve host: SyslogServerUseTcp,value
curl: (3) [globbing] unmatched close brace/bracket in column 2
curl: (6) Could not resolve host: SyslogServerUseTls,value
curl: (3) [globbing] unmatched close brace/bracket in column 2
curl: (6) Could not resolve host: SyslogServerNoBsdCompat,value
curl: (3) [globbing] unmatched close brace/bracket in column 2
curl: (6) Could not resolve host: SyslogServerCaCertChain,value
curl: (3) [globbing] unmatched close brace/bracket in column 1
curl: (6) Could not resolve host: SyslogServerAllowOffTimeRangeCerts,value
curl: (3) [globbing] unmatched close brace/bracket in column 2
curl: (6) Could not resolve host: SyslogServerPort,value
curl: (3) [globbing] unmatched close brace/bracket in column 4
curl: (3) [globbing] unmatched close brace/bracket in column 2
解决方案
JSON 必须在单引号内,否则 shell 和 curl 认为要解析的都是不同的命令行参数。
curl -o -skd '{ "jsonrpc": "2.0", "method": "addAction", "params":{"action":{"id": "Syslog","name": "Syslog Action","isSystem": false,"type": "SendSyslogMessage","arguments": [{"key": "SyslogServerName","value": "10.41.155.233"},{"key": "SyslogServerUseTcp","value": "0"},{"key": "SyslogServerUseTls","value": "0"},{"key": "SyslogServerNoBsdCompat","value": "0"},{"key": "SyslogServerCaCertChain","value": ""},{"key": "SyslogServerAllowOffTimeRangeCerts","value": "0"},{"key": "SyslogServerPort","value": "514"}]}},"id": 1}'
推荐阅读
- rest - 使用 RHV rest api 将文件复制到 RHV 虚拟机
- java - ARCore – 如何将相机对焦更改为“自动对焦”?
- javascript - 如何使用 sanity.io 在字段中创建默认值?
- git - 一次创建多个 git 分支
- c# - 如何将 ASP.NET Core SignalR 与 Pace.js 一起使用
- sql-server - dbcc sqlperf('threads') 的 thred id 是什么?
- google-maps - 如何使用地理位置的纬度和经度值移动到该位置
- ubuntu - 如何在 Lubuntu 18.04 的终端中启用自然滚动?
- python - 如何在异步循环关闭之前等待对象的 __del__ 完成?
- amazon-web-services - AWS CloudWatch Logs 自定义指标未显示在 GUI 中