当我想阅读有关内容时,我终于厌倦了巴什的read
和 的-s
选项man bash
。我最终找到了正确的位置(大约第 4500 行),但这和往常一样令人沮丧,因为两者/read
甚至/\s-s\s
搜索都有太多匹配项。
所以,问题是:我如何有效地阅读长手册页,或以其他方式获取相同的信息,本地?举个具体的例子,read -s pwd
在shell脚本中看到后如何到达相关文档?一个好的答案可能是 shell 脚本片段,或者有关某些工具及其使用方式的提示,或者完全是其他东西,只要它有助于找到正确的阅读位置即可。
注意:我没有标记巴什因为我希望问题是关于一般的手册页阅读,尽管这很可能是最常遇到的巨大手册页。
答案1
要快速获取有关 Bash 内置命令的帮助,请使用help
:
help read
就是你想要的。
对于类似手册页的格式,请使用
help -m read
或者,甚至更好,
help -m read | less
如果您仍然坚持在手册页中查找它,我发现快速让我找到命令的解释是
/^\s*read [[]
这是有效的,因为当第一次解释命令时,它的名称会从行的开头稍微缩进。在 的特定情况下read
,在找到实际read
文档之前需要进行一些浏览,因为(出于明显的原因)“阅读”一词在整个手册页中多次重复。 [[] 表示匹配通常位于可选参数之前的 [。 (我通常省略 /^\s* 并简单地执行 /<内置命令> [[])
另一种选择
如果您不介意格式更改,可以将手册页转换为 DVI 或 PDF 文件:
man -T dvi bash >bash.dvi
或者
man -T ps bash | ps2pdf - bash.pdf # Requires the Ghostscript suite for ps2pdf
当然,如果有 DVI 或 PDF 文档,您就可以轻松地进行文本搜索。
答案2
方法一
man bash
然后/read \[
然后/-s
方法2
您可以尝试使用一个开源工具来解释命令行参数,称为解释shell。
可以在本地使用。阅读有关的文档https://github.com/idank/explainshell
注意事项:通常有效,但只能使用 Ubuntu 手册页存储库中的命令
在你的情况下,它无法识别-s
switch in read -s pwd
。
方法3
我发现了另一个看起来很有前途的工具,但它不适用于我的系统。
答案3
在这种情况下我通常做的就是运行man
,搜索SHELL BUILTIN COMMANDS
标题,然后搜索内置,即
man bash
/^SHELL BUILTIN
/ read
但是,在 bash 中你可以这样做
help read
或者,根据系统的不同,
man 1 read
man bash-builtins
一般来说,我有一个名为he
(“简短的帮助”)来做到这一点。你可以像这样运行它:
he bash read
答案4
为了直接跳转到 bash 手册页的 SHELL BUILTINS COMMANDS 部分,我在文件中定义了以下别名$HOME/.bash_aliases
。
alias man-builtin="man -P 'less -p ^SHELL\ BUILTIN\ COMMANDS' bash"