编写脚本并尝试终止进程

编写脚本并尝试终止进程

我的目标是编写一个脚本,显示所有正在运行的进程,并询问用户是否要终止每个进程...对于具有该名称的进程的每个实例,询问用户是否要删除它。仅删除用户回答“是”的进程(并且他们必须键入 yes,而不仅仅是 y)。

#!/bin/bash

ps

  PID TTY          TIME CMD
 1681 pts/1    00:00:00 tcsh
 1690 pts/1    00:00:00 bash
 1708 pts/1    00:00:00 script
 1710 pts/1    00:00:00 ps

echo "Do you wish to kill PID?"
select yesno in "Yes" "No"; do
case $yesno in
    Yes ) $ kill -9;;
    No ) exit;;

我不是 100% 确定如何提出问题来终止每个进程,以及如何更改每个问题的 PID。我知道我必须创建一个变量,我只是不知道如何将变量分配给每个 PID...

答案1

下面是一个使用 for 循环的示例:

checkit ()
{
    p="$1"
    echo "Do you wish to kill $p"
    select yesno in "Yes" "No"
    do
        case $yesno in
            Yes) $ kill -9 "$p";;
            No) exit;;
        esac
    done
}

for p in $(ps -o pid=)
do
    checkit $p
done

查看man ps有关自定义 ps 输出的详细信息。或者:http://linux.die.net/man/1/ps或者:http://unixhelp.ed.ac.uk/CGI/man-cgi?ps

相关内容