wordpress - 如何在 bash 脚本的 wp 注释列表中使用 date_query 参数
问题描述
我想创建一个 bash 脚本来计算 4 小时前 wordpress 中的评论数。
它将在 nagios 插件中使用
我想对 wordpress 请求使用“ wp comment list
”或某些命令wp cli
我将使用date
bash 命令与 wp cli 进行交互。
我尝试拥有类似的东西
#!/bin/bash
now=$(date --date="4 hour ago" '%Y-%m-%d %T')
nbr_comment=$(wp comment list --patch=FULL/PATH/TO/wordpress --status=approve "--date_query=after $now" --format=count);
echo -e "nbr_comment\n$now"
我现在的问题是在 date_query 参数中找到正确的语法。
这些命令仍然返回整个评论的数量,而不是过去 4 小时内的评论数量。
来源:wp评论列表
--date_query 指的是 WP_Date_Query
谢谢您的帮助
解决方案
似乎您对拆分和引用有基本的误解。分配变量时$now
,您将在命令替换中运行以下命令:
date --date="4 hour ago" +%Y-%m-%d %T
这将抱怨额外的操作数 ( %T
)。此命令的参数按以下方式分解:
--date="4 hour ago" # Optional argument
+%Y-%m-%d # Output format
%T # Extra operand
使用引用对输出格式进行分组以解决此问题:
date --date="4 hour ago" '+%Y-%m-%d %T'
# With the variable assignment
now=$(date --date="4 hour ago" '+%Y-%m-%d %T')
您的命令在参数wp
中也遇到同样的问题。date_query
(我将假设星号是在代码块中进行标记的尝试。)参数如下所示:
--date_query='after'$now
如果我们假设 的值为$now
2020-02-24 07:00:00,则参数将按如下方式拆分:
--date_query=after2020-02-24
07:00:00
您需要引用此内容以避免分裂。为简单起见,我建议在整个字符串上使用双引号(我还在后面的单词后面添加了一个空格):
"--date_query=after $now"
编辑: 将来,请尝试使用shellcheck.net,或者您可以将本地版本下载到您的机器上。Shellcheck 会为您发现这个错误。
推荐阅读
- python - python xlrd属性错误
- docker - 在 docker 容器中找不到文件
- c++ - TensorFlow c++ API 在 session->run() 上崩溃
- r - 是否可以定义内容根文件夹?
- javascript - 根据输入值更改 href 目标
- jasper-reports - 当我尝试传递我的报告连接时,为什么我无法转换为 net.sf.jasperreports.engine.JRDataSource?
- python - 为给定位置创建房地产价格指数
- javascript - 按间隔对对象数组进行分组
- java - 关于“拆分数组,使一侧的数字之和等于另一侧的数字之和”的代码的反馈。
- c - 在代码块中编译但不在hackerrank中