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

0

Этот вопрос основан нанить.

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

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

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

How can you replace the command with my command?

Ваш Ответ

1   ответ
3

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

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

. ./man.sh

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

О, другая вещь. Вы, вероятно, хотите использовать & quot; $ * & quot; вместо $ 1 в вашей функции.
& Quot; $ * & Quot; Кажется, предпочитает все параметры от 1,2,3, ... Это может быть полезно. Тем не менее, я не могу понять, как вы читаете руководства% man emacs vim% Léo Léopold Hertz 준영
Что ж. $ * будет полезно, когда вы используете man -3C printf. И ваша функция будет поддерживать всю семантику традиционного человека. Если вы запускаете man emacs vim, вы можете перейти к следующему человеку, набрав q в моей системе.
@ Райан: Спасибо за ваш ответ! Это решает проблему! Léo Léopold Hertz 준영
@ Райан: я использую OS / X. У него нет опции -3C: какова ее цель? --- & quot; $ * & quot; не работает, как вы описали в OS / X. Я также запускаю & quot; $ 1 & quot; & Quot; $ 2 & Quot; безуспешно. --- Не могли бы вы объяснить, какие функции мне не хватает, если я не использую $ *, пожалуйста. Léo Léopold Hertz 준영

Похожие вопросы