我怎么能够重复每隔一段时间运行一个命令,这样我就可以为检查 或者监控 目录?
不需要脚本,我只需要在终端中执行一个简单的命令。
答案1
您可以使用 watch
命令,手表用于定期运行任何指定的命令。
打开终端并输入:
watch -n x <your command>
改变X为您想要的秒数。
有关使用watch
命令及其选项的更多帮助,请运行man watch
或访问此关联。
例如 :下面将列出每一个60 年代,在同一个终端上,桌面目录的内容,以便您可以知道是否发生了任何更改:
watch -n 60 ls -l ~/Desktop
答案2
除了nux 的回答:
while true; do <your_command>; sleep <interval_in_seconds>; done
例子:
while true; do ls; sleep 2; done
ls
此命令将以2秒的间隔打印输出。
使用Ctrl+C来停止该进程。
有几个缺点watch
:
- 它不能使用任何别名命令。
- 如果任何命令的输出很长,滚动就无法正常工作。
- 设置有些麻烦最大时间间隔超出某个值。
watch
-c
将使用或选项传递转义字符来解释 ANSI 颜色序列--color
。例如,的输出pygmentize
将有效,但对于将失败ls --color=auto
。
在上述情况下,这看起来可能是更好的选择。
答案3
答案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