题: 有时我想经常(每隔几秒钟)重复一次命令(或shell脚本)。有没有更好的方法每n秒执行一次unix命令(而不是继续手动输入相同命令)?
回答: 使用watch命令,您可以执行命令并查看它’每隔几秒钟输出一次。这在监视内存使用情况,磁盘使用情况等时非常有用,
您可以使用watch命令执行任何Unix命令。监视命令将一直执行,直到您通过CTRL + C终止该命令或终止该进程为止。
示例1:使用watch ls监视文件创建
当您期望文件由后台进程创建时,或者当您期望日志文件的大小不断增长时,您可能最终会多次执行ls命令。相反,您可以使用watch命令,它将每2秒执行一次ls命令,如下所示。
$ watch ls Every 2.0s: ls Thu Apr 15 16:11:58 2010 flash-plugin-10.0.45.2-release.i386.rpm install_flash_player_10_linux.deb
watch命令输出的第一行包含以下标头信息:
- 每2.0秒:时间间隔。即ls将每2秒执行一次。
- ls:每2秒执行一次的Unix命令。
- 2010年4月15日星期四16:11:58:当前日期& time.
其余各行是watch正在执行的命令的输出。在此示例中,它显示ls命令的输出。
示例2:使用的显示&可用内存详细信息(突出显示差异)
-d选项突出显示了连续更新之间的差异。
$ watch -d free -om Every 2.0s: free -om Thu Apr 15 16:11:59 2010 total used free shared buffers cached Mem: 992 878
114
0 135 379
Swap: 4095 8 4087
如果内存输出没有’要在您的系统上进行更改,请尝试-d选项和date命令以查看其工作方式。
$ watch -d date
注意 :您知道吗 突出显示top命令输出中的更改?
示例3:显示可用磁盘空间(每10秒重复一次)
默认情况下,watch命令使用2秒间隔,您可以使用-n选项更改它。以下示例每10秒执行一次df -h命令。
$ watch -n 10 df -h Every 10.0s: df -h Thu Apr 15 16:12:26 2010 Filesystem Size Used Avail Use% Mounted 上 /dev/sda7 30G 8.6G 20G 31% / tmpfs 497M 964K 496M 1% /dev/shm /dev/sda6 194M 22M 163M 12% /boot
示例4:在输出中隐藏监视标题
您可以使用选项-t禁止watch命令输出的第一行,如下所示。
$ watch -t ls flash-plugin-10.0.45.2-release.i386.rpm install_flash_player_10_linux.deb
如果您喜欢这篇文章,您可能还会喜欢..
![]() |
![]() |
![]() |
![]() |
嗨,感谢您的指导,我正在寻找这样的东西,我正在使用while循环来做到这一点。
[…]Answer: Using 瓦塔赫 command you can execute […]
“watach”我认为输入错了,请更改它。