Функция, которая переопределяет команду bash

Можно ли вызвать команду bash, которая была переопределена функцией? Я хотел бы сделать pushd без аргументов псевдоним pushd . в противном случае получите нормальное поведение.

я пробовал

pushd(){
   if [ $# -eq 0 ]; then
      pushd .
   else
      pushd $@
   fi
}

но это, кажется, дает бесконечную рекурсию. Обычно я бы использовал полный путь к любой программе, которую я переопределяю, но push это встроенная вещь bash, так что это невозможно.

1 ответ

Решение

Вы должны использовать builtin команда:

Pushd(){
   if [ $# -eq 0 ]; затем
      встроенный pushd .
   еще
      встроенный пуш "$@"
   фи
}
Другие вопросы по тегам