You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何含进程替换的crontab条目无法运行?

为什么第一条crontab条目无法运行?

核心原因是crontab默认使用sh而非bash:

  • 进程替换<()是bash专属的扩展语法,不属于POSIX标准shell的规范,sh无法识别该语法,导致第一条命令执行失败,因此不会生成output1.txt。
  • 第二条命令中的命令替换$(date)是POSIX标准支持的语法,无论是sh还是bash都能正常解析执行,所以output2.txt可以正常写入内容。

解决办法

如果想保留进程替换的写法,有两种方案:

  1. 在crontab最顶部指定bash作为执行shell:
SHELL=/bin/bash

之后所有crontab条目都会用bash运行,即可支持进程替换。
2. 改成sh兼容的写法,比如直接用date输出(无需额外调用cat):

* * * * * date >>~/output1.txt

若一定要保留cat,也可以用管道替代进程替换:

* * * * * date | cat >>~/output1.txt

内容的提问来源于stack exchange,提问作者hawk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:07:02