linux crontab + 将 shell 语法添加到 crontab

linux crontab + 将 shell 语法添加到 crontab

我们添加以下行crontab (脚本 - test.bash 应每分钟运行一次)

* * * * * root  [[ -f test.bash ]] && /tmp/test.bash

脚本是这样的

more  test.bash

#!/bin/bash

echo TEST >/tmp/file.txt

/tmp/file.txt但即使在几分钟后我们也看不到任何内容

下面的crontab语法有什么问题?

* * * * * root  [[ -f test.bash ]] && /tmp/test.bash

我们也尝试

* * * * * root  [[ -f test.bash ]] && bash /tmp/test.bash

但 /tmp/file.txt 文件仍然是空的

答案1

crontab command参数不是bash。简单command地传递给execve系统调用而不进行解释。在脚本中执行您的bashisms(例如[[bash,而不是在crontab command参数中。

相关内容