GNU Bash versão 5.1, WSL, Ubuntu 22.04.3 LTS.
$ bash -version
bash -version
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
- Editar
.bashrc
, criar funçãofoo
:
foo() {
echo 'GHOST'
}
salvar e sair
- Fonte
.bashrc
:
. .bashrc
Agora foo
é uma função válida:
type foo
foo is a function
foo ()
{
echo 'GHOST'
}
Ligue
foo()
, ele irá imprimirGHOST
Editar
.bashrc
, remover a função, fonte novamentefoo
como uma função ainda disponível para chamada etype
.Reinicie uma janela de terminal, ela agora deixa de existir.
Claro que isso também acontece quando você renomeia uma função; e você continua chamando a versão antiga enquanto a repete pressionando UP para usar a que está no histórico.
Bug? Recurso? Exploração?