无法解除绑定 shell 函数

Posted

技术标签:

【中文标题】无法解除绑定 shell 函数【英文标题】:Unable to unbind a shell function 【发布时间】:2010-11-06 10:11:54 【问题描述】:

本题基于the thread。

我有shell函数

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

问题是存在man命令。

如何用我的命令替换命令?

【问题讨论】:

【参考方案1】:

将 man "$1" 替换为路径名:/usr/bin/man。或将其更改为在反引号中使用“哪个人”。然后在当前 shell 中运行你的脚本。在 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

【讨论】:

哦,另一件事。您可能想在函数中使用“$*”而不是 $1。 "$*" 似乎更喜欢 1,2,3,... 中的所有参数,这可能很有用。但是,我无法理解您如何阅读 % man emacs vim % 的手册 好吧。当你使用 man -3C printf 时,$* 会很有用。然后,您的函数将支持传统人的所有语义。如果你运行 man emacs vim,你可以通过在我的系统上输入 q 跳到下一个 man。 @Ryan:我使用 OS/X。它没有选项-3C:它的目的是什么? --- "$*" 不像你在 OS/X 中描述的那样工作。我也没有成功运行“$1”“$2”。 --- 请您解释一下如果我不使用 $* 会错过哪些功能。 OS/X 有 man -S 来指定部分。另请查看rose-hulman.edu/~defoe/HowTo/index.html 的快速介绍。祝你好运。

以上是关于无法解除绑定 shell 函数的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序被绑定了怎么解除?

如何使用绑定解除此自定义模式?

js解除事件绑定的问题,参数怎么填解除事件绑定需要函数名但是如果给出函数名 this又发生了变化

浅谈jquery之on()绑定事件和off()解除绑定事件

linux解除绑定ssh源地址

类下的函数的绑定与解除绑定