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