我们添加以下行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
系统调用而不进行解释。在脚本中执行您的bash
isms(例如[[
)bash
,而不是在crontab
command
参数中。