Linux 这条工作线是什么意思

Linux 这条工作线是什么意思,linux,shell,cron,crontab,cronexpression,Linux,Shell,Cron,Crontab,Cronexpression,我有一个cron表达式,它与我以前使用的表达式有些不同,特别是因为?运算符(我不知道为什么使用它) 以下是我一直称之为标准格式的格式。但是我在这个标准格式之后给出的表达式没有遵循这个结构。 谁能帮我理解这个新格式。提前感谢您的帮助 * * * * * command to be executed - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) |

我有一个cron表达式,它与我以前使用的表达式有些不同,特别是因为
运算符(我不知道为什么使用它)

以下是我一直称之为标准格式的格式。但是我在这个标准格式之后给出的表达式没有遵循这个结构。 谁能帮我理解这个新格式。提前感谢您的帮助

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)
表达方式:

0  15 15 ? * 1-7
这是一个错误

cron
中的时间格式为5列。你有6个

如果我测试您的
cronexpression

0  15 15 ? * 1-7 ls
crontab显示:

crontab: installing new crontab
"/tmp/crontab.AzvS1Q":148: bad month
errors in crontab file, can't install.
Do you want to retry the same edit? 
此外,如果我使用5列进行测试,其中包含
,我仍然会得到一个错误


我的
cron
实现是
cronie1.4.8-3
archlinux
上。在我以前的生活中,我从来没有见过这种情况。

除了它似乎有太多的字符之外,问号可以用来代替通配符情况下的
*
字符,将月日或周日留空。

好了,伙计们,我找到了解决办法,它实际上是使用java进行调度

这就是它在表达式中获取6个参数的方式

我的表达式:
0 15?*1-7

Seconds
Minutes
Hours
Day-of-Month
Month
Day-of-Week
Year (optional field)
月日和周日字段允许使用
“?”
字符。用于指定“无特定值”。当您需要在这两个字段中的一个字段中指定某个内容,而不是在另一个字段中指定某个内容时,这非常有用。请参阅下面的示例(以及CrontriggerJavadoc)以了解说明


您可以使用它来验证您的cron表达式

实际上此cron表达式存储在oracle数据库中。您是否知道这种通配符情况是由oracle造成的。数据字段的类型为NVARCHAR2。第四个字段中有错误。“?”不是允许的值。正如标记的问题所述,这是一个类似石英的cron表达式。额外参考:谢谢你的链接,非常方便。石英文档有时会出错;他们可能会指出,您不能同时在月日和周日设置问号符号,同时必须将其中一个设置为?