
我怎麼能夠重複每個時間間隔一個指令,這樣我就可以執行指令檢查 或者監控 目錄?
不需要腳本,我只需要在終端機中執行一個簡單的命令。
答案1
您可以使用 watch
命令,手錶用於定期運行任何指定的命令。
打開終端機並輸入:
watch -n x <your command>
改變X成為您想要的時間(以秒為單位)。
如需使用該watch
命令及其選項的更多協助,請執行man watch
或造訪此關聯。
例如 :下面將列出,每個60年代,在同一終端機上,查看桌面目錄的內容,以便您可以知道是否發生了任何更改:
watch -n 60 ls -l ~/Desktop
答案2
您也可以在終端機中使用此命令,除了努克斯的回答:
while true; do <your_command>; sleep <interval_in_seconds>; done
例子:
while true; do ls; sleep 2; done
ls
此指令將以2 秒的間隔列印輸出。
使用Ctrl+C停止該進程。
有幾個缺點watch
:
- 它不能使用任何別名命令。
- 如果任何命令的輸出很長,則滾動將無法正常工作。
- 設定有點麻煩最大時間間隔超過一定值。
watch
將使用-c
或--color
選項解釋傳遞轉義字元的 ANSI 顏色序列。例如, 的輸出pygmentize
將有效,但 的輸出將失敗ls --color=auto
。
在上述情況下,這可能是一個更好的選擇。
答案3
雖然
watch
在 Ubuntu 上可以完美工作,但如果您希望您的“Unix-fu”是純粹的,您可能需要避免這種情況。例如,在 FreeBSD 上,watch
是一個「監聽另一條 tty 線路」的命令。while true; do command; sleep SECONDS; done
Ctrl還有一個警告:使用+可能更難殺死您的命令C。您可能會更喜歡:while sleep SECONDS; do command; done
它不僅更短,而且更容易被打斷。需要注意的是,它會首先休眠,然後運行您的命令,因此您需要等待一段時間
SECONDS
才能第一次出現該命令。
答案4
你可以使用crontab。運行命令crontab -e
並使用您喜歡的文本編輯器打開它,然後添加此行
*/10 * * * * /path-to-your-command
這將每 10 分鐘運行一次您的命令
* */4 * * * /path-to-your-command
這將每 4 小時運行一次您的命令
另一個可能的解決方案
$ ..some command...; for i in $(seq X); do $cmd; sleep Y; done
X重複次數。
是等待重複的時間。
例 :
$ echo; for i in $(seq 5); do $cmd "This is echo number: $i"; sleep 1;done