Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 键盘大师Bash CURL脚本不带变量,但不带变量_Json_Bash_Curl_Keyboard Maestro - Fatal编程技术网

Json 键盘大师Bash CURL脚本不带变量,但不带变量

Json 键盘大师Bash CURL脚本不带变量,但不带变量,json,bash,curl,keyboard-maestro,Json,Bash,Curl,Keyboard Maestro,全部。我曾试图在这个论坛和其他在线论坛上研究这个问题。我被难住了。希望有人能帮忙 我在使用键盘大师向Zendesk API发送JSON以将用户添加到组中时遇到问题。我是通过bashshell脚本中的CURL实现的。在您认为这是Zendesk API的问题之前,请耐心听我说!我真的认为这是KM或者我在KM做的蠢事。(可能是后者!) 像这样从KM运行的Bash脚本非常有效: curl https://yoursite.zendesk.com/api/v2/group_memberships/crea

全部。我曾试图在这个论坛和其他在线论坛上研究这个问题。我被难住了。希望有人能帮忙

我在使用键盘大师向Zendesk API发送JSON以将用户添加到组中时遇到问题。我是通过bashshell脚本中的CURL实现的。在您认为这是Zendesk API的问题之前,请耐心听我说!我真的认为这是KM或者我在KM做的蠢事。(可能是后者!)

像这样从KM运行的Bash脚本非常有效:

curl https://yoursite.zendesk.com/api/v2/group_memberships/create_many.json \
-X POST -d '{"group_memberships": [{"user_id": 123, "group_id": 1}, {"user_id": 456, "group_id": 1}, {"user_id": 789, "group_id": 1}]}' \
-H "Content-Type: application/json" -v -u (email address here):(password here)
但是,我想通过一个KM变量($KMVAR\u CURL\u Text)将用户id和组id信息传递给bash脚本

$KMVAR\u CURL\u文本变量内容与上面的手动脚本中的用户id和组id信息完全匹配。我已经通过JSON验证程序运行了变量文本。很好。我已经手动将变量数据粘贴回bash脚本,没问题

但是,如果我使用变量$KMVAR\u CURL\u Text:

'{"group_memberships": [{"user_id": 123, "group_id": 1}, {"user_id": 456, "group_id": 1}, {"user_id": 789, "group_id": 1}]}'
使用shell脚本:

curl https://yoursite.zendesk.com/api/v2/group_memberships/create_many.json \
-X POST -d $KMVAR_CURL_Text \
-H "Content-Type: application/json" -v -u (email address here):(password here)
Zendesk的API告诉我:

< HTTP/1.1 400 Bad Request
< Server: nginx
< Date: Mon, 21 Sep 2015 15:09:21 GMT
< Content-Type: application/json; charset=UTF-8
< Content-Length: 111
< Connection: keep-alive
< Status: 400 Bad Request
< X-Zendesk-API-Version: v2
< X-Zendesk-API-Warn: Removed restricted keys ["'{\"group_memberships\":"] from parameters according to whitelist
我很高兴与Zendesk讨论这个问题。但是,由于我可以手动完成这项工作,我觉得问题在于我或KM。有人知道我做错了什么吗?可能是转义、非转义或与变量相关的文本编码

谢谢


Marc:-)

总是引用shell扩展,除非您有明确且令人信服的理由这样做

-d "$KMVAR_CURL_Text"

否则,字符串将经历字符串拆分(在
IFS
的内容上拆分为多个单词)和全局扩展(将这些单词中的每个单词视为全局表达式,并可能替换为文件名列表).

Quotes,people,Quotes。顺便说一句,我会帮你抓住这个问题。我在这个重复的问题上标记的是一个稍微有趣的案例——知道引用很重要,但不知道如何正确引用的人——但答案完全适用。(他们引用的是参数的静态部分,但不是展开式;你没有该参数的静态部分,因此在你的问题中,这都是无引号的展开式,但在这两种情况下都是无引号的展开式)。查尔斯,你是一位绅士和学者!很抱歉,我之前的搜索没有发现这一点!