Функция, которая переопределяет команду bash
Можно ли вызвать команду bash, которая была переопределена функцией? Я хотел бы сделать pushd без аргументов псевдоним pushd . в противном случае получите нормальное поведение.
я пробовал
pushd(){
if [ $# -eq 0 ]; then
pushd .
else
pushd $@
fi
}
но это, кажется, дает бесконечную рекурсию. Обычно я бы использовал полный путь к любой программе, которую я переопределяю, но push это встроенная вещь bash, так что это невозможно.
1 ответ
Решение
Вы должны использовать builtin команда:
Pushd(){
if [ $# -eq 0 ]; затем
встроенный pushd .
еще
встроенный пуш "$@"
фи
}