如何编写一个调用同名命令的 bash 函数?

如何编写一个调用同名命令的 bash 函数?

我想编写一个命令包装器,在执行底层命令之前检查条件。我不知道如何在不调用当前函数的情况下执行底层命令。

function npm() {
  # if a yarn.lock file exists in the current dir or a parent dir then exit 1
  npm "$@" # otherwise run the actual npm command, not this same function
}

我无法将整个路径硬编码到 npm,因为它会根据我当前激活的 npm 版本而变化。

答案1

这应该有效

command npm ...

其中command称为预命令修饰符, 看https://zsh.sourceforge.io/Doc/Release/Shell-Grammar.html#Precommand-Modifiers

相关内容