如何使用curl将多个参数传递给cron作业?

Yet*_*eti 50 cron curl

我正在运行两个cron工作:

这个执行没有问题:

curl -sS http://example.com/cronjob.php?days=1
Run Code Online (Sandbox Code Playgroud)

但这根本不会发生:

curl -sS http://example.com/cronjob.php?days=1&month=1
Run Code Online (Sandbox Code Playgroud)

这是因为&符号(&)吗?如果是,如何传递多个参数?

使用argv不是一种选择.

Sam*_*amB 97

您会注意到,这在您的shell中也不起作用.

您需要做的是在URL周围加上单引号,如下所示:

curl -sS 'http://example.com/cronjob.php?days=1&month=1'
Run Code Online (Sandbox Code Playgroud)

  • 运行curl二进制文件的Windows用户应该使用双引号而不是单引号来使多个查询参数命令工作. (16认同)
  • 这对我有用 - 浪费了很多分钟,不明白为什么我的第二个参数不起作用。 (3认同)

str*_*ade 7

尝试 POST 请求

curl -d "days=1&month=1" www.example.com/cronjob.php
Run Code Online (Sandbox Code Playgroud)

  • 提及它没有什么坏处,知道它是件好事(尽管我会选择 GET) (2认同)

MMK*_*ami 6

作为一种替代方法,可以在&之前使用\,这是shell的特殊字符。通常,&是对shell有意义的特殊字符之一。

因此,使用反斜杠(在“报价解决方案”旁边)可以很好地解决此问题。更多

在您的示例中,您可以简单地应用以下命令:

curl -sS http://example.com/cronjob.php?days=1\&month=1
Run Code Online (Sandbox Code Playgroud)

  • ➕1实际解释了问题“&`表现为特殊字符[我在您的链接上查找它表示“后台工作”] (2认同)