Bash-如何杀死当前用户满足条件的所有进程?

Bash-如何杀死当前用户满足条件的所有进程?,bash,process,Bash,Process,我目前使用的是ps-opid,cmd | awk'{if($2==“watch”)print$1}'| xargskill-1 我想扩展这个命令来终止当前用户的进程 我开始工作的是ps-o uid,pid,cmd | awk'{if($1==1000&&$3==“watch”)print$2}| xargs kill-1,但我想用id-u之类的东西替换$1==1000,但它不起作用。您可以使用: ps -o uid,pid,cmd | awk -v uid=$(id -u) '$1==uid &

我目前使用的是
ps-opid,cmd | awk'{if($2==“watch”)print$1}'| xargskill-1

我想扩展这个命令来终止当前用户的进程

我开始工作的是
ps-o uid,pid,cmd | awk'{if($1==1000&&$3==“watch”)print$2}| xargs kill-1
,但我想用id-u之类的东西替换$1==1000,但它不起作用。

您可以使用:

ps -o uid,pid,cmd |
awk -v uid=$(id -u) '$1==uid && $3=="watch"{print $2}' |
xargs kill -1

我建议使用更简单的命令,如

pkill -U $USER watch

请注意,通过使用
-U user1、user2,…

您使用的操作系统/发行版和版本,您可以针对多个用户?我不需要任何特定的内容,因为目前我正在使用Red Hat Enterprise,但在不久的将来也可能使用Ubuntu/Debian。使用Ubuntu和RHEL
ps-o uid,pid,cmd
只列出当前用户的进程。请注意,
-U
可以是一个逗号分隔的用户列表。创建一个比我使用的更简单、更容易的列表。干杯