내 목표는 실행 중인 모든 프로세스를 표시하고 사용자에게 각 프로세스를 종료할지 묻는 스크립트를 작성하는 것입니다. 해당 이름을 가진 프로세스의 각 인스턴스에 대해 사용자에게 삭제할지 묻는 것입니다. 사용자가 "yes"라고 대답한 프로세스만 삭제합니다(단지 y가 아닌 yes를 입력해야 함).
#!/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;;
각 프로세스를 종료하기 위해 문제를 제기하는 방법과 각 문제의 PID를 변경하는 방법을 100% 확신하지 못합니다. 변수를 만들어야 한다는 것은 알지만 각 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