繁体   English   中英

如何在Perl脚本中将变量传递给curl命令?

[英]How to pass a variable to curl command in perl script?

我试图在Perl脚本中将变量传递给curl命令。 但这是失败的。

但是,当我从命令提示符运行相同的curl命令时,它正在工作。

my $id=3;

system('curl -D- -u username:password -X PUT --data {\"fields\":{\"priority\":{\"id\":\"${id}\"}}} -H "Content-Type: application/json" -k https:request);

当我在Perl脚本上执行时,出现如下错误。

{"errorMessages":[],"errors":{"priority":"The priority selected is invalid."}}after curl command 

当我在命令提示符处通过将id替换为值来运行上述命令时,它正在传递。

'curl -D- -u username:password -X PUT --data {\"fields\":{\"priority\":{\"id\":\"3 \"}}} -H "Content-Type: application/json" -k https:request

请在这里帮助我,让我知道我的代码出了什么问题。

您将命令放在单引号内。 Perl将其视为单引号内的内容。 当您通过命令传递$id变量时,建议您使用双引号。 例如

system("curl ... $id... -k https:request");
       ^ double quote                   ^

或者,您可以通过使用串联来做到这一点。

system('curl -D- -u ...' . $id . '... -k https:request');
                          ------ concatenation

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM