Como posso criar uma função em zsh que chame um comando existente com o mesmo nome?

9

Como posso escrever uma função em zsh que invoca um comando existente com o mesmo nome da própria função? Por exemplo, tentei ilustrar minha pergunta:

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

Quando executo com ls * , obtenho o seguinte:

ls:1: maximum nested function level reached

Eu assumo isso porque a função está sendo chamada recursivamente. Como posso evitar isso?

Este é um exemplo bruto e, neste caso, um alias faria o trabalho, mas eu tenho um exemplo mais complexo em que um alias não é adequado e, portanto, eu precisaria escrever uma função.

    
por Andrew Ferrier 23.02.2013 / 22:27

1 resposta

24

O que está acontecendo é que você está chamando recursivamente sua função ls . Para usar o binário, você pode usar o command builtin do ZSH.

function ls {
    command ls -l "$@"
}
    
por 23.02.2013 / 22:30

Tags