覆盖 bash 命令的函数

And*_*ood 6 bash

是否可以调用已被函数覆盖的 bash 命令?我想制作pushd没有参数的别名,pushd .否则会得到正常的行为。

我试过了

pushd(){
   if [ $# -eq 0 ]; then
      pushd .
   else
      pushd $@
   fi
}
Run Code Online (Sandbox Code Playgroud)

但这似乎给出了无限递归。通常我会使用我覆盖的任何程序的完整路径,但它push是一个内置的 bash 东西,所以这是不可能的。

cYr*_*rus 9

您应该使用以下builtin命令:

推(){
   如果 [ $# -eq 0 ]; 然后
      内置 pushd 。
   别的
      内置推送“$@”
   菲
}