Shell-Script
經過一定時間後執行命令?
如果我正在執行一個漫長的過程,有什麼辦法可以執行一些基於時間的命令?
例如,我正在執行一個非常長的程序,大約執行 10 分鐘。
5 分鐘後,我想執行一個單獨的命令。為了說明,單獨的命令可以是:
echo 5 minutes complete
(注意:我不希望在命令完成方面取得進展,而只是在指定時間間隔後執行的命令。)
是否可以?
趕緊跑:
long-command & sleep 300; do-this-after-five-minutes
將
do-this-after-five-minutes
在五分鐘後執行。將long-command
在後台執行。
你可以使用這個腳本:
#!/bin/bash TEMPFILE="$(mktemp)" STARTTIME="$(date +%s)" (./longprocess; rm -f "$TEMPFILE") & while [ -f "$TEMPFILE" ]; do sleep 1s NOW="$(date +%s)" if (( (NOW-STARTTIME) % 300 == 0 )); then echo "$(( (NOW-STARTTIME)/60 )) minute(s) elapsed" fi done echo "Done!!!"
它執行您的
longprocess
in asub-shell
然後監視先前創建的“鎖定”文件是否存在。