Bash 运算符 < , > , | 和 grep / 杀死

3 linux bash grep kill

作为练习,我想使用基本的 bash 原则通过命令行终止进程,但我遇到了一些我不明白的错误:

ps -A | grep nautilus | egrep -o '[0-9]{4,5}' | kill
Run Code Online (Sandbox Code Playgroud)

1)它不起作用

如果我尝试

ps -A | grep nautilus | egrep -o '[0-9]{4,5}' > kill
Run Code Online (Sandbox Code Playgroud)

2)也不起作用

3)如果我这样做,(..) egrep '\d' (...)这不 应该与 [0-9] 相同吗?

4)有什么办法可以让我做这样的事情:

kill < (greps (...) )
Run Code Online (Sandbox Code Playgroud)

aio*_*obe 5

尝试

kill `ps -A | grep nautilus | egrep -o '[0-9]{4,5}'`
Run Code Online (Sandbox Code Playgroud)

反引号内的命令将作为命令的一部分执行和馈送。

  • 4-5 位数字的假设很奇怪;大多数 ps 实现不会零填充 pid 的左侧,并且 pid 使用可以环绕。一些操作系统甚至实际使用超过 16 位的 pid 空间。 (4认同)
  • ...或者使用`$()`代替反引号,更容易阅读:) (3认同)