escrevendo um script e tentando matar um processo

0

Então eu sou muito novo no Unix, eu entendo que essa pergunta pode ser muito simples

Meu objetivo é escrever um script que mostrará todos os processos em execução e perguntar ao usuário se eles querem matar cada processo ... Para cada instância de um processo com esse nome, pergunte ao usuário se ele deseja remover isto. Remova apenas os processos que o usuário responde sim (e eles devem digitar sim, não apenas 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;;

Não tenho 100% de certeza sobre como fazer a pergunta para matar cada processo e como alterar o PID para cada pergunta. Eu sei que tenho que criar uma variável, só não sei exatamente como atribuir a variável a cada PID ...

    
por Wifil 15.03.2015 / 20:15

1 resposta

1

Aqui está um exemplo usando um loop 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

Confira man ps para detalhes sobre como personalizar a saída do ps. Ou: link Ou: link

    
por 15.03.2015 / 20:42

Tags