Невозможно отменить функцию оболочки

Этот вопрос основан на потоке.

У меня есть функция оболочки

function man()
{       
    man "$1" > /tmp/manual; less /tmp/manual 
}

Проблема заключается в том, что существует команда man.

Как вы можете заменить команду моей командой?

Ответ 1

Замените человека "$ 1" на путь:/usr/bin/man. Или измените его, чтобы использовать "тот человек" в пределах backquotes. Затем запустите ваш script в текущей оболочке. На bash/ksh вам нужно сохранить ваш script в каком-то файле, скажем man.sh, а затем запустить его как '../man.sh".

cat > man.sh
function man()
{       
    /usr/bin/man "$1" > /tmp/manual; less /tmp/manual 
}
^D

. ./man.sh

Вы получаете идею. Вы можете отключить функцию в любое время: unset -f man