Jan*_*ary 3 unix linux bash alias manpage
我经常使用R.在R中,您可以通过编写来调用函数的手册页
?print
Run Code Online (Sandbox Code Playgroud)
我已经习惯了这么多,我也间歇性地在bash shell窗口中键入它.现在,我已经设置了一个别名
?='man'
Run Code Online (Sandbox Code Playgroud)
这几乎可以削减它:例如,我可以做到? ls
.但是,我更愿意与之合作?ls
.不幸的是,这个不起作用.当我输入没有空格的问号后,有没有办法让bash调用手册页?
che*_*ner 11
bash
提供了一个用于处理未定义命令的钩子.由于您不太可能拥有名称以其开头的任何命令?
,因此您可以使用此钩子来处理运行此类命令的任何尝试:
command_not_found_handle () {
if [[ $1 =~ ^\? ]]; then
cmd=${1#\?}
man $cmd
else
echo "$1: command not found" >&2
return 127
fi
}
Run Code Online (Sandbox Code Playgroud)
此函数将进入您的.bashrc
文件,因此它可以在任何shell中使用.当你尝试执行时
$ ?ls
Run Code Online (Sandbox Code Playgroud)
如果找不到该命令,则挂钩截获失败的尝试以查找命令,确定命令名称的开头?
,然后剥离?
并将结果作为参数传递给man
.其他未定义的命令仅产生类似于bash
未知命令的默认错误的错误消息,状态为127的退出(相同的状态bash
通常用于表示未找到命令).