跑步
watch "COLUMNS= ps aux | grep TheProcessYouWatch"
Run Code Online (Sandbox Code Playgroud)
说明:watch设置某些附加环境变量,即COLUMNS和LINES。env | grep COLUMNS通过比较和可以很容易地验证这一点watch 'env | grep COLUMNS'。
COLUMNS设置后,即使输出通过管道传输(或其他任何内容)ps,也会将其输出截断为一行中的多个字符。grep(ps, 你为什么要这样对我?)。强制在 的命令COLUMNS中为空watch足以使ps工作按OP(和我)的预期进行。
顺便说一句,为了避免watch和grep处理成为您监视的输出的一部分,请考虑[]像这样添加:
watch "COLUMNS= ps aux | grep [T]heProcessYouWatch"
Run Code Online (Sandbox Code Playgroud)
(当然,我建议也熟悉一下pgrep。其他答案对此会有帮助。)
小智 3
正如问题编辑和xzfc 的回答中提到的,该问题似乎与 tmux 的换行有关。对于更接近 的直接替换的内容ps aux | grep [q]uote,如果您不需要用户信息,请尝试:
$ pgrep -af [q]uote
392 bash -c sleep 5 && echo quote
399 bash -c sleep 5 && echo second quote
$ watch pgrep -af [q]uote
Run Code Online (Sandbox Code Playgroud)
该-a标志使输出包含命令行参数,同时-f允许您搜索命令行参数以及进程名称。