我正在尝试在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
请在这里帮助我,让我知道我的代码有什么问题。
答案 0 :(得分:1)
您将命令放在单引号内。并且perl将其视为单引号内部。当您使用命令传递$id
变量时,我建议您使用双引号。例如
system("curl ... $id... -k https:request");
^ double quote ^
或者你可以通过使用连接来这样做。
system('curl -D- -u ...' . $id . '... -k https:request');
------ concatenation