You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

watch与lsof、grep组合使用无输出,是否存在兼容性问题?

问题原因

不是watch和lsof、grep不兼容,是你写的命令的执行优先级不符合预期。
shell在解析命令时,管道|的优先级高于普通参数解析,你写的watch lsof -p 3536693 | grep snapshot会被拆分为两个独立执行的部分:

  • 前台执行watch lsof -p 3536693,把它的标准输出作为管道输入
  • 后台执行grep snapshot,过滤前面watch的输出

而watch默认会输出终端清屏、光标定位等控制序列,且本身是持续运行的全屏幕交互程序,输出内容不会被grep正常识别匹配,所以看不到结果。

解决方法

把需要watch重复执行的**完整命令(包含管道部分)**用引号包裹,作为watch的单个参数传入即可:

watch 'lsof -p 3536693 | grep snapshot'

如果还是没有输出,可以给grep加上行缓冲参数避免输出缓冲阻塞:

watch 'lsof -p 3536693 | grep --line-buffered snapshot'

如果需要调整刷新间隔,可加-n 秒数参数,下面是每秒刷新一次的示例:

watch -n 1 'lsof -p 3536693 | grep snapshot'

内容的提问来源于stack exchange,提问作者CrazyRabbit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 22:09:02