Sé que puedo usar unset -f $FUNCTION_NAME
para desarmar una sola función en bash/zsh, pero ¿cómo desarmo todas las funciones?
Respuesta1
En el zsh
caparazón, puedesdesactivartodas las funciones usando
disable -f -m '*'
(literalmente, "deshabilitar cada función cuyo nombre coincida *
").
Luego podrá habilitarlos nuevamente con la enable
llamada análoga.
También puede utilizar unset
de forma similar para eliminar completamente las funciones del entorno actual:
unset -f -m '*'
Respuesta2
La matriz asociativafunctions
contiene todas las funciones definidas (incluidos los códigos auxiliares de carga automática), por lo que${(k)functions}
se expande a la lista de nombres de funciones definidas.
unset -f ${(k)functions}