Se você definir ou exportar uma variável de ambiente no bash, poderá desmarcá- la. Se você definir um alias no bash, poderá desmarcá- lo. Mas não parece haver uma falta de funcionalidade .
Considere esta função bash (trivial), por exemplo, configurada em um arquivo .bash_aliases e leia na inicialização do shell.
function foo () { echo "bar" ; }
Como posso limpar essa definição de função do meu shell atual?
(Alterar os arquivos de inicialização ou reiniciar o shell não conta.)
linux
command-line
bash
shell
charlatão quixote
fonte
fonte
unfunction
seria um bom nome para um comando :-)Respostas:
O comando interno não definido aceita uma opção
-f
,, para excluir funções:Forme a entrada não configurada na página de manual do bash :
Nota:
-f
só é realmente necessário se existir uma variável com o mesmo nome. Se você também não tiver uma variável nomeadafoo
,unset foo
a função será excluída.fonte
-f
parâmetro na exportação, mas não o encontrei na configuração . obrigado.unset
não é um comando externo, faz parte do shell ( neste caso, bash ); tenteman bash
encontrar a entrada paraunset
(o gerenciamento é bastante grande,unset
está naShell Builtin Commands
seção).Veja
help unset
:Não há
unset --help
nemman unset
infelizmente.fonte
man unset
porque é um built-in de comando e para o built-in comandos existe vezhelp
. Para alguns built-in comando existe um executável externo também. Em caso de dúvida tente por exemplotype mycommnad
. Por exemplo,type unset
e ele responderáunset is a shell builtin
. Se você quiser saber se ele existe, o executável também tentawhich echo
(outro buikt-in) e ele diz onde está. O--option_long
é típico do comando executável. Tenteecho --help
e/bin/echo --help
.:-)
.help
em vez deman
. (Não é verdade, porque você os encontraman bash
no capítulo SHELL BUILTIN COMMANDS ou diretamente comman BASH-BUILTINS
...). É acolhedor que, sob um shell bash, você pode simplesmente pedirhelp
e receberá a lista de built-in comando:-)
. (Tentehelp help
eman man
também).