Si configura o exporta una variable de entorno en bash, puede desactivarla . Si establece un alias en bash, puede desanudarlo . Pero no parece haber una falla .
Considere esta función bash (trivial), por ejemplo, establecida en un archivo .bash_aliases y leída en la inicialización del shell.
function foo () { echo "bar" ; }¿Cómo puedo borrar esta definición de función de mi shell actual? 
(Cambiar los archivos de inicialización o reiniciar el shell no cuenta).
                    
                        linux
                                command-line
                                bash
                                shell
                                
                    
                    
                        quijote curandero
fuente
                
                fuente

unfunctionsería un buen nombre para un comando :-)Respuestas:
El comando incorporado no configurado toma una opción
-f, para eliminar funciones:Formar el desarmado entrada en la fiesta de página de manual:
Nota:
-fsolo es realmente necesario si existe una variable con el mismo nombre. Si no tiene una variable denominadafoo,unset fooeliminará la función.fuente
-fparámetro en la exportación pero no lo encontré sin configurar . Gracias.unsetno es un comando externo, es parte del shell ( bash en este caso); intenteman bashy encuentre la entrada paraunset(la gestión es bastante grande,unsetestá debajo de laShell Builtin Commandssección).Ver
help unset:No hay
unset --helpniman unsetdesafortunadamente.fuente
man unsetporque es un built-in de comandos y para el incorporado en los comandos que hay lugarhelp. Para algunos comandos integrados también existe un ejecutable externo. En caso de duda intente, por ejemplotype mycommnad. Por ejemplotype unsety te responderáunset is a shell builtin. Si desea saber si existe el ejecutable, intentewhich echo(otro buikt-in) y le dirá dónde está. El--option_longes típico del comando ejecutable. Pruebeecho --helpy/bin/echo --help.:-).helplugar deman. (No es realmente cierto porque los encuentraman bashen el capítulo SHELL BUILTIN COMMANDS o directamente conman BASH-BUILTINS...). Es acogedor que bajo un shell bash simplemente puede pedirhelpy recibirá la lista de comandos incorporados:-). (Pruebahelp helpyman mantambién).Hace poco quería desinstalarlo
nvmy reinstalarlo por completo , y deshacerme de cualquiera de sus entornos. Resulta que deshacerse de él no parece ser porque grannvmparte se implementa en parte como una gran cantidad de funciones de shell que se obtienen en su shell a través de.bash_profileo.bashrc, o donde haya agregado los comandos de abastecimiento que le indicó cuando lo instaló por primera vez.Desconcertado al principio al
which nvmno devolver nada pero claramente elnvmcomando y otros aún se encontraban, finalmente descubrí a través dedeclare -Fque se trata de un montón de funciones de shell. No quería simplemente matar el shell e iniciar uno nuevo (por razones no relevantes aquí), así que borré lasnvmfunciones de ese shell con esto:Algunas variaciones al respecto pueden ser útiles para alguien que, por cualquier razón, quiere hacer algo similar y no puede reiniciar un nuevo shell o no quiere hacerlo.
fuente