在极致的客户端(1)手册页提出以下建议cron项:
~ * * * * acme-client example.com && \
rcctl reload httpd
Run Code Online (Sandbox Code Playgroud)
当我crontab
使用该语法添加到编辑时不会保存:
crontab: installing new crontab
"/tmp/crontab.nOryzjBTlv":22: bad minute
crontab: errors in crontab file, unable to install
Do you want to retry the same edit?
Run Code Online (Sandbox Code Playgroud)
但是,如果我只是将其设为一行,则可以很好地保存:
~ * * * * acme-client example.com && \ rcctl reload httpd
Run Code Online (Sandbox Code Playgroud)
为什么\
不允许继续一行到下一行?
无法将单个命令行拆分为多行,例如 shell 的尾随“\”
如果你这样做,你会在下面的段落中找到上面的陈述man 5 crontab
。请注意以下来自 Ubuntu 20.04LTS。
``sixth'' 字段(该行的其余部分)指定要运行的命令。该行的整个命令部分,直到换行符或 % 字符,将由 /bin/sh 或 shell 指定执行?在 crontab 文件的 SHELL 变量中定义。命令中的百分号 (%),除非用反斜杠 (\) 转义,否则将更改为换行符,并且第一个 % 之后的所有数据将作为标准输入发送到命令。无法将单个命令行拆分为多行,例如 shell 的尾随“\”
来自https://man.openbsd.org/crontab.5
它说该行的其余部分是命令字段,它没有说明命令如何跨越多行。您不应假定 crontab 具有与 shell 脚本相同的语法。
命令字段(该行的其余部分)是要运行的命令。该行的整个命令部分,直到换行符或 % 字符,将由 /bin/sh 或由 crontab 的 SHELL 变量中指定的 shell 执行。命令中的百分号 ('%'),除非用反斜杠 ('\') 转义,将被更改为换行符,并且第一个 '%' 之后的所有数据将作为标准输入发送到命令。
归档时间: |
|
查看次数: |
1387 次 |
最近记录: |