如何在 zsh 中创建一个函数来调用同名的现有命令?

如何在 zsh 中创建一个函数来调用同名的现有命令?

如何编写一个函数来zsh调用与函数本身同名的现有命令?例如,我尝试用这个来说明我的问题:

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

当我执行它时,ls *我得到以下结果:

ls:1: maximum nested function level reached

我认为这是因为该函数被递归调用。我怎样才能避免这种情况?

这是一个粗略的示例,在这种情况下,别名可以完成这项工作,但我有一个更复杂的示例,其中别名不合适,因此我需要编写一个函数。

答案1

发生的情况是您正在递归调用您的ls函数。为了使用二进制文件,您可以使用 ZSH 的command内置函数。

function ls {
    command ls -l "$@"
}

相关内容