¿Cómo puedo crear una función en zsh que llame a un comando existente con el mismo nombre?


9

¿Cómo puedo escribir una función zshque invoque un comando existente con el mismo nombre que la función misma? Por ejemplo, he intentado esto para ilustrar mi pregunta:

function ls 
{
    ls -l $1 $2 $3
}

Cuando lo ejecuto ls *me sale lo siguiente:

ls:1: maximum nested function level reached

Supongo que esto se debe a que la función se llama de forma recursiva. ¿Cómo puedo evitar eso?

Este es un ejemplo crudo, y en este caso un alias haría el trabajo, pero tengo un ejemplo más complejo en el que un alias no es adecuado, por lo que necesitaría escribir una función.

Respuestas:


25

Lo que está sucediendo es que estás llamando recursivamente a tu lsfunción. Para usar el binario, puede usar el commandincorporado de ZSH .

function ls {
    command ls -l "$@"
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.