Assim como Chris Down , vou assumir que você está usando o bash do GNU. Outras conchas podem ser diferentes, mas a ideia geral deve ser a mesma.
No bash, a variável de ambiente $$
contém o ID do processo em execução no momento e $PPID
contém o ID do processo pai do processo em execução. Como Chris exemplificou, você pode ir ainda mais longe, mas / proc é específico do Linux.
Você pode perguntar ao usuário se deseja sair usando uma construção como a seguinte.
echo "Do you want to exit? (type YES or NO, then Enter)"
read answer
if test "${answer}" = "YES"; then
# insert process killing magic
fi
# we only get here if the user did not answer "YES"
Se estiver disponível, você pode usar o GNU dialog
para tornar a questão um pouco mais bonita. Nesse caso, substitua todo o snippet acima por algo parecido com o seguinte.
if dialog --yesno "Do you want to exit?" 10 50; then
# insert process killing magic
fi
# we only get here if the user did not answer "YES"
Os números 10 50
especificam o tamanho da caixa de diálogo (linhas e colunas, respectivamente).
O process killing magic
poderia ser algo tão simples quanto kill $PPID
.