``watch ps aux | 的工作解决方案 | grep foo``

use*_*201 15 bash pipe ps watch

watch ps aux | grep foo 不管用: bash: syntax error near unexpected token `}'

我该如何解决这个问题,或者有更好的方法吗?

ami*_*sax 25

问题是你看错了

  1. watch ps aux | grep foo

意味着你想在 watch 的输出中 grep foo - 不幸的是它本身是沉默的。它确实ps aux每 2 秒运行 一次,但不在标准输出上打印任何内容。

然而,以下

  1. watch 'ps aux | grep foo'

意味着您想查看是否foo打印了任何匹配的内容ps aux。这就是你想要做的。

因此你会想要选择 2

  • 呵呵,昨天还可以,但今天我只看到一个明显被截断的进程列表,全部由 root 拥有。单独运行 ps aux 和 ps aux | tee -a test.txt 都按预期工作,但随后被 watch 包装为 $watch 'ps aux | tee -a test.txt' 我只得到 root 拥有的进程的简短列表。为什么,Linux,为什么? (2认同)