Estou tentando escrever uma função para substituir a funcionalidade do exit
builtin para me impedir de sair do terminal.
Eu tentei usar a SHLVL
variável de ambiente, mas ela não parece mudar nos subshells:
$ echo $SHLVL
1
$ ( echo $SHLVL )
1
$ bash -c 'echo $SHLVL'
2
Minha função é a seguinte:
exit () {
if [[ $SHLVL -eq 1 ]]; then
printf '%s\n' "Nice try!" >&2
else
command exit
fi
}
Isso não me permitirá usar exit
dentro de subshells:
$ exit
Nice try!
$ (exit)
Nice try!
Qual é um bom método para detectar se estou ou não em um subshell?