是否可以检查 crontab oneliner 中是否存在文件,并且仅在该文件存在时才执行脚本?
伪代码:
* * * * * <if /tmp/signal.txt exists> run /opt/myscript.sh
Run Code Online (Sandbox Code Playgroud)
Kus*_*nda 27
使用普通测试是否存在,如果测试成功则运行脚本。
* * * * * if [ -e /tmp/signal.txt ]; then /opt/myscript.sh; fi
Run Code Online (Sandbox Code Playgroud)
或者
* * * * * if test -e /tmp/signal.txt; then /opt/myscript.sh; fi
Run Code Online (Sandbox Code Playgroud)
或者,使用短路语法。如果文件不存在,这样做会导致作业失败(这可能会触发来自 cron 守护程序的电子邮件):
* * * * * [ -e /tmp/signal.txt ] && /opt/myscript.sh
Run Code Online (Sandbox Code Playgroud)
或者
* * * * * test -e /tmp/signal.txt && /opt/myscript.sh
Run Code Online (Sandbox Code Playgroud)
如果您想另外确保它是常规文件而不是目录、命名管道或某种其他类型的文件,则可以使用-f
test 代替 test 。-e
/tmp/signal.txt