Tyi*_*ilo 68 bash man shell-builtin
有什么地方可以下载每个内置命令的联机帮助页吗?
我知道你可以使用helporman bash和 search 来查找有关它的信息,但我希望它们分开,所以我可以这样做man read并获取阅读手册页。
Gil*_*il' 65
help read
help read | less
Run Code Online (Sandbox Code Playgroud)
在 zsh 中:
run-help read
Run Code Online (Sandbox Code Playgroud)
或键入read something并按M-h(即Alt+h或ESC h)。
如果您想拥有单个man命令而不需要知道该命令是否是内置命令,请在您的~/.bashrc.
man () {
case "$(type -t "$1"):$1" in
builtin:*) help "$1" | "${PAGER:-less}";; # built-in
*[[?*]*) help "$1" | "${PAGER:-less}";; # pattern
*) command -p man "$@";; # something else, presumed to be an external command
# or options for the man command or a section number
esac
}
Run Code Online (Sandbox Code Playgroud)
gle*_*man 37
尝试这个:
bashman () { man bash | less -p "^ $1 "; }
Run Code Online (Sandbox Code Playgroud)
您可能需要n多次点击才能找到实际的命令,而不是恰好将命令名称作为第一个单词的段落。
解释:这将man bashbash 的整个手册页(这是一个巨大的文档,并有解释每个 bash 内置命令的小节)的整个输出通过管道传输到阅读程序less。less'-p标志代表“模式”;它的作用是自动滚动到输入文本中与模式匹配的第一个点。这里的模式是一个正则表达式,它匹配“行首 ( ^),后跟特定数量的空格,后跟 ...”——这里,bash 插入提供给bashman函数的第一个参数,因为 bash 看到了特殊的$1用双引号分隔的字符串中的标记(意思是“第一个参数”)(单引号会告诉 bash 你的字面意思是字符$1)。所以,如果你跑bashman cd,您将有效地搜索 bash 手册页中以一堆空格开头的任何行,然后是字符串“cd”。因为在 bash 的整个手册页中,除了解释部分的实际标题(例如,“cd”)之外,可能还有其他点也与此模式匹配,因此该函数实际上可能不会将您带到 bash 手册页的正确部分。