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