如何在shell脚本上选择第一个结果

时间:2014-03-27 12:27:30

标签: bash

我想查找一个特定的进程,然后将其杀死(在脚本中)。

我正在做ps -fu user | grep matching_string,但这会给我两行:一行是预期的pid,另一行是grep的pid。

如果结果是两列,我会用awk来挑选第一列。但是当我们将它们作为行返回时,我不知道如何选择第一个结果。

2 个答案:

答案 0 :(得分:2)

pkill怎么样?

pkill -U user-id process-name

答案 1 :(得分:1)

你可以使用这个技巧:

ps -fu user | grep matching_strin[g]

这样,grep匹配就不会出现了。

它是如何工作的? (有关详细信息,请参阅Find and kill a process in one line using bash and regex。)

  • 使用ps -fu user | grep matching_string,它列出了grep matching_string的所有流程,因此包含grep本身。
  • 执行ps -fu user | grep matching_strin[g]添加正则表达式,使grep跳过grep本身。为什么?因为流程名称为grep matching_strin[g]且与文字matching_string不匹配。