如何每N秒重复运行bash脚本?

我有一些统计,如磁盘信息,内存使用等bash脚本。 但在脚本运行和closures之后它只显示一次信息。 我可以让这个脚本重复运行(例如“htop”)或类似的东西? 我想要这个信息在5-10秒后更新。 谢谢!

对我的评论略有改进:如果你的脚本退出真实 (例如,当它exit 0 ),你可以运行

 while script; do sleep 10; done 

只要不失败,这是重复命令的规范方法。

在Linux中,您可以使用watch程序重复一个操作。 假设script.sh是可执行的:

 watch -n 10 path/to/script.sh 

会每10秒运行一次。

要使脚本可执行,可以使用chmod +x script.sh 。 不要忘了添加shebang

 #!/bin/bash 

到第一行(假设它是一个bash脚本)。

如果您正在从当前目录运行脚本,则可以执行以下操作:

 watch -n 10 ./script.sh 

正如在评论中提到的,你需要在无条件的循环中包装脚本:

 while :; do script; sleep 10; done 

根据脚本逻辑,而不是睡眠10,你可能想把不同的例如读 – 输入数据在文件/套接字标准输入。 这将保证你的脚本不会醒来,直到有些数据要处理,如果数据将出现,脚本将不需要任何时间来唤醒。