Zsh'de aynı ada sahip varolan bir komutu çağıran bir işlevi nasıl oluşturabilirim?


9

zshİşlevle aynı ada sahip varolan bir komutu çağıran bir işlevi nasıl yazabilirim ? Örneğin, sorumu göstermek için bunu denedim:

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

Ben ile yürüttüğümde ls *aşağıdakileri elde ederim:

ls:1: maximum nested function level reached

Bunun nedeni, fonksiyonun özyinelemeli olarak çağrılmasıdır. Bundan nasıl kaçınabilirim?

Bu kaba bir örnektir ve bu durumda bir takma ad işi yapacaktır, ancak bir takma adın uygun olmadığı daha karmaşık bir örneğim var ve bu nedenle bir işlev yazmam gerekiyor.

Yanıtlar:


25

Olan şey, lsfonksiyonunuzu tekrar tekrar çağırmanızdır . İkili programı kullanmak için ZSH yerleşimini kullanabilirsiniz command.

function ls {
    command ls -l "$@"
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.