Como combinar o nome exatamente com a 'ajuda' do Bash?

4

Parece que o comando de ajuda interno do Bash help faz algumas coisas realmente estranhas:

  • help read mostra a documentação para read , readarray e readonly .
  • help rea? mostra apenas a documentação para read .
  • help 'read$' não funciona.
  • help read | sed '/^read[^:]\+/,$d' é apenas bobo.

Existe alguma maneira mais intuitiva de obter apenas a saída read ?

    
por l0b0 25.02.2013 / 17:41

2 respostas

3

Parece que defaul help foo é realmente equivalente a help foo* . Mas se alguns caracteres globbing especiais forem usados, o final " * " não será adicionado implicitamente.

Então, uma possibilidade seria help [r]ead .

O globbing usado é aquele usado pelo shell para correspondência de arquivos; afaik não é equivalente a \< nem \> .

    
por 25.02.2013 / 19:50
0

canalize a saída da ajuda por meio de um pequeno script awk:

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

Agora, help read só lhe dará a ajuda da leitura incorporada.

    
por 25.02.2013 / 22:08