如何编写一个函数来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 "$@"
}