前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >watch的使用场景

watch的使用场景

作者头像
编程珠玑
发布2019-09-02 22:27:09
6790
发布2019-09-02 22:27:09
举报
文章被收录于专栏:编程珠玑

前言

是不是经常会遇到需要观察某个内容,为了持续观察而反复执行某个命令?也许你可以写一个简单的脚本帮你反复执行,但是有更简单方便的方法为什么不用呢?今天要介绍的便是watch命令。

以固定时间反复执行某个命令

比如说,你需要使用cat查看某个文件内容,由于它不断更新,你需要反复执行并观察,那么你可以使用watch:

代码语言:javascript
复制
$ watch -n 1 cat test.txt
Every 1.0s: cat test.txt 
hello

watch的-n参数指定了反复执行的间隔,上面表示每隔1秒就执行cat test.txt命令。

高亮变化内容

除了能够反复执行某个命令之外,还可以高亮变化的内容。例如,你需要观察平均负载情况,可以使用:

代码语言:javascript
复制
$ uptime
20:12:12 up  1:46,  1 user,  load average: 0.77, 0.75, 0.87

为了突出变化部分,你可以使用-d(difference)参数,它会高亮变化的内容:

代码语言:javascript
复制
watch -d uptime
(这里省略,变化内容会高亮,非常便于观察)

执行出错时退出

假设你要运行某个命令,希望它的退出码不是0时,即命令执行出错时就结束,那么你可以使用-e(errexit)参数:

代码语言:javascript
复制
$ watch -n 1 -e cat test.txt

此时若删掉test.txt文件,它将会停止执行该命令。

执行结果变化时退出

前面我们说到可以观察高量变化内容,我们也可以利用-g(chgexit)参数使得结果发现变化时,退出执行:

代码语言:javascript
复制
$ watch -n 1 -g command

例如,我们观察某个文件大小是否有变换,发生变化时停止观测,这个时候可以使用:

代码语言:javascript
复制
$ watch -n 1 -g 'du -b test.txt'

这里需要注意,后面du的命令需要用引号引起来,以便被当成一个完整的命令,一旦test.txt文件大小变化了,将会退出执行。

总结

前面的举例可能不恰当,但是却说明了watch的使用场景。在实际情况中,可以根据自己的场景情况,选择不同的使用方式。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程珠玑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 以固定时间反复执行某个命令
  • 高亮变化内容
  • 执行出错时退出
  • 执行结果变化时退出
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档