crontab -l | { cat; echo "0 0 * * * /path/to/cron/job"; } | crontab -
Run Code Online (Sandbox Code Playgroud)
我从网上拿了这条线,添加一个新的 cron 作业。它运作良好。我得到了怀疑,
1)这里为什么需要大括号(或者我们可以用单引号),
{ cat; echo "0 0 * * * /path/to/cron/job"; }
Run Code Online (Sandbox Code Playgroud)
2) 为什么我们需要cat;这里的命令?
3)crontab -。如果我的理解是正确的,是否-会被管道中上一个命令的输出替换?
1)为什么我们需要大括号
因为您需要将 的输出cat和to 的输出都通过管道echo传输crontab -。如果没有花括号,您就无法将两个命令的输出组合到一个管道中。
(或者我们可以使用单引号)在这里
不。 ... | 'cat; echo "0 0 * * * /path/to/cron/job"' | ...表示“管道到名为cat; echo "0 0 * * * /path/to/cron/job"”的可执行文件。那没有意义。
2) 为什么我们需要
cat;这里的命令?
你没有。您可以更有效地编写相同的内容:
{ crontab -l; echo '0 0 * * * /path/to/cron/job'; } | crontab -
Run Code Online (Sandbox Code Playgroud)
3)
crontab -。如果我的理解是正确的,是否-会被管道中上一个命令的输出替换?
是的,但那是因为crontab特别支持。使用-是指stdin和/或sdtout是许多命令所理解的惯例,但它仅仅是一个惯例。它不是 shell 强制要求的,例如,>file或者| command.
| 归档时间: |
|
| 查看次数: |
1614 次 |
| 最近记录: |