crontab 中的空格重要吗

crontab 中的空格重要吗

从 crontab 的联机帮助页来看还不清楚。字段之间是否允许有额外的空白?例如,如果我有这个:

1 7 * * * /scripts/foo
5 17 * * 6 /script/bar
31 6 * * 0 /scripts/bofh

像这样重新格式化是否安全:

 1  7 * * * /scripts/foo
 5 17 * * 6 /script/bar
31  6 * * 0 /scripts/bofh

答案1

是的,允许有额外的空间,您可以很好地排列字段以提高可读性。从man 5 crontab

Blank lines and leading spaces and  tabs  are  ignored.

An environment setting is of the form,

   name = value

where the spaces around the equal-sign (=) are optional, and any  sub‐
sequent non-leading spaces in value will be part of the value assigned
to name.

对于字段本身,手册页显示:

The fields may be separated  by  spaces or tabs.

这应该很清楚:允许有多个空格。

答案2

是 允许额外的空白。考虑:

#Mins  Hours  Days   Months  Day of the week
10     3      1      1       *       /bin/echo "I don't really like cron"
30     16     *      1,2     *       /bin/echo "I like cron a little"
*      *      *      1-12/2  *       /bin/echo "I really like cron"

我总是添加列标题,因为我懒得记住所有数字的顺序,但以下是 crontab 生成的内容:

这个 crontab 应该每隔一个月(每个偶数月)回显“我真的很喜欢 cron”。显然,只有当你真的喜欢 cron 时,你才会这样做。 crontab 还会在 1 月和 2 月每天 16:30 回显“我有点喜欢 cron”。它还会在 1 月 1 日 3:10 回应“我不太喜欢 cron”。

相关内容