Cancelando um logout e retornando a um shell

1

Eu realmente não quero fazer isso; a Lei das Consequências Não Intencionais aparece muito acima desta ideia. Só estou curioso para saber se a capacidade existe mesmo. Funcionalidades semelhantes podem ser úteis para alguns scripts como uma etapa inicial.

Suponha que eu queira escrever isso em um arquivo ${HOME}/.logout :

#! /bin/bash
cd /path/to/git/working/project
if [ "$( git status | wc -l )" -gt 5 ]
then
  echo "Check in your work before you leave."
  <STOP THE LOG OUT PROCESS AND RETURN TO THE SHELL PROMPT>
fi

Como eu faria o último bit? Um break faria isso?

    
por dafydd 13.09.2016 / 15:53

1 resposta

1

Primeiro configure um trap na sessão para o comportamento de saída:

trap ~/.logout EXIT

Se você quiser, pode adicionar esse comportamento de trap ao bashrc e, em seguida, o script .logout será executado toda vez que os usuários tentarem sair do shell.

E então você pode escrever o script .logout:

#!/bin/bash
cd /path/to/git/working/project
if [ "$( git status | wc -l )" -gt 5 ]
then
  echo "Check in your work before you leave."
  bash 
fi

Então, quando você tentar sair da sessão, o script .logout será executado e o bash aparecerá para verificar se o usuário faz a coisa certa. Se os usuários fizerem o que estiver certo com o git, a sessão terminará normalmente.

    
por 13.09.2016 / 22:12