我的cronjob语法出了什么问题,我正在尝试使用反引号(`)?

Modified on: Mon, 11 Nov 2019 08:20:01 +0800

以下是我要自动化的内容:

00 08 * * * psql -Uuser database < query.sql | mail somone@null.com -s "query for `date +%Y-%m-%dZ%I:%M`"

以下是错误消息:

/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file

最佳答案

来自crontab(5)

  

“第六”字段(该行的其余部分)指定了
  命令运行。该行的整个命令部分,向上
  对于换行符或%字符,将由/ bin / sh执行
  或者由SHELL变量中指定的shell
  crontab文件。除非转义,否则命令中的百分号(%)
  使用反斜杠(),将更改为换行符,
  并且第一个%之后的所有数据都将被发送到命令
  标准输入。没有办法
  将单个命令行拆分为多个行,就像shell一样
  尾随“\”。

只需在%标志前添加反斜杠:

00 08 * * * psql -Uuser database < query.sql | mail somone@null.com -s "query for `date +\%Y-\%m-\%dZ\%I:\%M`"
作者:Juliano

相关问答

添加新评论