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

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

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

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

Проблема в том, что существует командный человек.

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

1 ответ

Решение

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

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

. ./man.sh

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

Другие вопросы по тегам