📜  杀死所有在 grep 中匹配的进程 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:26:33.431000             🧑  作者: Mango

杀死所有在 grep 中匹配的进程

在Linux系统下,通过进程的名称或者关键词进行搜索定位,并对其进行杀死操作,是非常常见的操作。其中,使用grep命令可以方便地搜索出所有与指定关键词或进程名称匹配的进程pid,使用kill命令则可以将这些进程全部杀死。

以下是一个shell脚本,用来实现上述功能:

#!/bin/bash

echo "请输入要搜索的进程关键词:"
read keyword

# 获取所有匹配进程的pid
pids=$(ps aux | grep "$keyword" | grep -v grep | awk '{print $2}')

if [ -n "$pids" ]; then
    # 杀死所有匹配进程
    echo -n "确认要杀死以上进程吗?(y/n)"
    read confirm

    if [ "$confirm" == "y" ]; then
        kill $pids
        echo "成功杀死进程:$pids"
    else
        echo "取消杀死进程。"
    fi
else
    echo "没有找到匹配的进程。"
fi

该脚本会首先提示用户输入要搜索的进程关键词,然后使用ps aux命令获取所有匹配的进程的pid,并使用kill命令杀死这些进程。如果没有匹配的进程,则输出相应的信息,同时如果用户不确认要杀死这些进程,则也不会对其进行操作。

使用方法
  1. 将脚本保存为kill_process.sh文件;
  2. 打开终端,进入脚本所在目录;
  3. 给脚本执行权限,并运行:
$ chmod +x kill_process.sh
$ ./kill_process.sh
  1. 根据提示输入要搜索的进程关键词,并根据提示输入是否确认杀死进程。
注意事项
  1. 请确保使用该脚本时具有管理员权限;
  2. 请谨慎杀死进程,以免造成数据损失等不必要的后果;
  3. 请使用合理的关键词进行搜索,以免杀死无意义的进程。