这是我想要自动化的内容:
00 08 * * * psql -Uuser database < query.sql | mail somone@null.com -s "query for `date +%Y-%m-%dZ%I:%M`"
Run Code Online (Sandbox Code Playgroud)
这是错误消息:
/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)
Jul*_*ano 79
``sixth'' 字段(该行的其余部分)指定要运行的命令。该行的整个命令部分,直到换行符或 % 字符,将由 /bin/sh 或由 crontab 文件的 SHELL 变量中指定的 shell 执行。命令中的百分号 (%),除非用反斜杠 () 转义,否则将更改为换行符,第一个 % 之后的所有数据将作为标准输入发送到命令。无法将单个命令行拆分为多行,例如 shell 的尾随“\”。
只需在 % 符号前添加反斜杠:
00 08 * * * psql -Uuser database < query.sql | mail somone@null.com -s "query for `date +\%Y-\%m-\%dZ\%I:\%M`"
Run Code Online (Sandbox Code Playgroud)
Eri*_*thi 13
要解决此问题,请转义您的 % 字符。date +%Y-%m-%d
应该date +\%Y-\%m-\%d
不幸的是,这个答案有点晚了,但问题不是 PATH 或反引号 - 问题只是百分比字符 '%' 是一个特殊字符,用于表示 crontab 条目中的 NEWLINE 或 STDIN。
这与date
命令的格式输入冲突。因此,包含:的命令date +%Y-%m-%d
将被解释为:
date
Y-
m-
d
小智 5
我也有很多反引号问题。有时您需要多次出现引号和反引号。只需将它们替换为 $()。
例子:
export NOW=`date`
by
export NOW=$(date)
Run Code Online (Sandbox Code Playgroud)
-吉尔森苏亚雷斯
归档时间: |
|
查看次数: |
10992 次 |
最近记录: |