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