"中的嵌套引号执行shell脚本" - 命令会导致错误

时间:2016-01-16 23:01:10

标签: curl applescript adobe-indesign extendscript

我从(indesign)extendscript jsx文件运行cURL shell脚本。

这适用于简单查询,但在下面的命令中,您可以看到我有很多引用嵌套,这似乎使命令失败!它没有丢失任何错误,但Wordpress-Post没有被改变!

var command = 'do shell script "curl -X PUT -H \'Content-Type: application/json\' -d \' { \'title\': \'Blub\', \'content_raw\': \'Updated post content\' } \' -u username:password http://website.com/wp-json/wp/v2/cpt/12/"';
var response = app.doScript(command, ScriptLanguage.APPLESCRIPT_LANGUAGE);

当我像这样写它时会抛出错误,因为引用错误:

var command = 'do shell script "curl -X PUT -H \"Content-Type: application/json\" -d \" { \"title\": \"Blub\", \"content_raw\": \"Updated post content\" } \" -u admin:password http://seebook.dev/wp-json/wp/v2/calendar/12/"';

当我直接在终端中运行命令时,它可以工作......

curl -X PUT -H "Content-Type: application/json" -d " { \"title\": \"Updates Title\", \"content_raw\": \"Updated post content\" } " -u username:password http://website.com/wp-json/wp/v2/cpt/12/

这个版本也是如此:

var command = 'do shell script "curl -X PUT -H \"Content-Type: application/json\" -d \" { \'title\': \'Blub\', \'content_raw\': \'Updated post content\' } \" -u username:password http://website.com/wp-json/wp/v2/cpt/12/"';

如何编写查询,以便它可以工作?

我想这是一个相当不容乐观的问题,但我以前从未遇到过这样的情况...

一切顺利, 卢卡斯

1 个答案:

答案 0 :(得分:0)

试试这个,外引号必须是双引号,content-type部分用单引号括起来,查询是用quoted form of表达式

创建的
set query to "{ \"title\": \"Updates Title\", \"content_raw\": \"Updated post content\" }"
do shell script "curl -X PUT -H 'Content-Type: application/json' -d " & quoted form of query & " -u username:password http://website.com/wp-json/wp/v2/cpt/12/"