如何在shell函数中绕过递归函数定义?
我想在我的如何在shell函数中绕过递归函数定义?,shell,zsh,Shell,Zsh,我想在我的.zshrc中添加如下函数: rg() { rg "$@" --pretty less -XFRS ;} 问题是,这会在调用时导致无限循环 我认为单引用命令名('rg'--pretty…)绕过了本地定义的函数和别名;但出于某种原因,这未能阻止无限循环 我可以用一个绝对路径来实现这一点 rg() { /usr/local/bin/rg "$@" --pretty less -XFRS ;} …但我不想丢失程序的$PATH-分辨率;我只想绕过该函数。您可以使用命令内置: rg() {
.zshrc
中添加如下函数:
rg() { rg "$@" --pretty less -XFRS ;}
问题是,这会在调用时导致无限循环
我认为单引用命令名('rg'--pretty…
)绕过了本地定义的函数和别名;但出于某种原因,这未能阻止无限循环
我可以用一个绝对路径来实现这一点
rg() { /usr/local/bin/rg "$@" --pretty less -XFRS ;}
…但我不想丢失程序的
$PATH
-分辨率;我只想绕过该函数。您可以使用命令
内置:
rg() { command rg "$@" --pretty less -XFRS ;}
这将运行给定的
命令
,使用ARGS
抑制shell函数查找,或显示有关指定命令的信息。请注意,这实际上可能是别名的一个用例;您所做的只是向命令添加一对选项<代码>别名rg='rg--pretty less-XFRS'。(除非您想确保--pretty less
覆盖用户可能提供的任何--pretty
选项。)似乎解决了问题!我知道命令
,但我不知道它的功能与shell引用名称有什么不同。谢谢