Command-Line
通過指定確切的秒來調度命令/腳本
我正在使用 bash 並想知道如何在稍後的指定時間以一秒的精度執行命令/腳本?
我閱讀了
at
-command 的手冊頁,但據我所知,它只能指定分鐘(而不是秒)。現在我首先使用at
然後sleep
讓它執行正確的第二個。為了展示,如果我想在 22.21.05 執行 my_script.sh,我會這樣做:echo "sleep 5; my_script.sh" | at 22.21
但是如果有一個內置的命令會更好。像
at 22.21.05
.
我不相信這是可能的。
cron
只是細化到分鐘,at
實用程序掛鉤到它來完成它的工作。我認為你有正確的解決方案——在執行前睡x秒。
你可以把你的技術變成一個函式:
atplus () { local sec=${1##*.} time=${1%.*}; shift; echo "sleep $sec; $@" | at $time; }
試試看:
atplus 22.21.05 my_script.sh
但是,您應該知道,不能保證精度。