如何将名称与 Bash 的内置“help”完全匹配?

如何将名称与 Bash 的内置“help”完全匹配?

看来 Bash 内置帮助命令help做了一些非常奇怪的通配:

  • help readread显示、readarray和的文档readonly
  • help rea?仅显示 的文档read
  • help 'read$'不起作用。
  • help read | sed '/^read[^:]\+/,$d'太傻了。

有没有更直观的方法来仅获取输出read

答案1

默认情况下似乎help foo实际上相当于help foo*.但是,如果使用一些特殊的通配符,则*不会隐式添加结尾“”。

所以,一种可能性是help [r]ead

使用的通配符是 shell 用于文件匹配的通配符;据我所知,没有任何与\<nor等效的东西\>

答案2

通过一个小的 awk 脚本管道输出帮助:

help () {
    builtin help "$1" |
    awk -F: -v command="$1" '
        p && /^[^[:space:]]/ {exit}
        $1 == command {p = 1}
        p
    '
}

现在help read只会为您提供有关 read 内置函数的帮助。

相关内容