Bash
僅當文件存在時如何執行 crontab 作業?
是否可以在 crontab oneliner 中檢查文件是否存在,並且僅在該文件存在時才執行腳本?
虛擬碼:
* * * * * <if /tmp/signal.txt exists> run /opt/myscript.sh
使用普通測試是否存在,如果測試成功則執行腳本。
* * * * * if [ -e /tmp/signal.txt ]; then /opt/myscript.sh; fi
或者
* * * * * if test -e /tmp/signal.txt; then /opt/myscript.sh; fi
或者,使用短路語法,
* * * * * [ -e /tmp/signal.txt ] && /opt/myscript.sh
或者
* * * * * test -e /tmp/signal.txt && /opt/myscript.sh
如果您想另外確保它是正常文件而不是目錄、命名管道或其他類型的文件,則可以使用
-f
測試而不是測試。-e``/tmp/signal.txt