我可以获得 bash 内置命令的单独手册页吗?

我可以获得 bash 内置命令的单独手册页吗?

有没有地方可以下载每个内置命令的联机帮助页?

我知道您可以使用helpman bash并搜索来查找有关它的信息,但我希望将它们分开,这样我就可以man read获取阅读的联机帮助页。

答案1

help read
help read | less

在 zsh 中:

run-help read

或键入read something并按M-h(即Alt+hESC 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
}

答案2

尝试这个:

bashman () { man bash | less -p "^       $1 "; }

您可能需要点击n几次才能到达实际命令,而不是恰好以命令名称作为第一个单词的段落。

解释:这会将 的整个输出man bash,即 bash 的整个手册页(这是一个巨大的文档,并且有小节解释每个 bash 内置命令)传输到读取程序less。 less'-p标志代表“模式”;它的作用是自动滚动到输入文本中与模式匹配的第一个点。这里的模式是一个正则表达式,它匹配“行的开头 ( ^),后跟特定数量的空格,后跟...”——这里,bash 插入提供给bashman函数的第一个参数,因为 bash 看到特殊的$1令牌(表示“第一个参数”)位于用双引号分隔的字符串中(单引号会告诉 bash 您的字面意思是字符$1)。因此,如果您运行bashman cd,您将有效地搜索 bash 手册页中以一堆空格开头,然后是字符串“cd”的任何行。因为 bash 的整个手册页中可能还有其他点也符合此模式除了解释部分的实际标题,例如“cd”,此函数实际上可能不会将您带到 bash 手册页的正确部分。

相关内容