homem não funciona (muitos argumentos)


23

Eu recebo um erro ao tentar executar manem um sistema Linux:

$ LC_ALL=C man man

man: Too many arguments
Try 'man --help' or 'man --usage' for more information.

Meu mancomando não parece ser um alias:

command -v man: /usr/bin/man 

O que está acontecendo?


Qual é a saída de "alias man" ou simplesmente "alias"?
rbrtflr 18/01

1
Você é manum apelido? Verifique com type manou command -v man.
Kusalananda

alias ll = 'ls -l --color = auto | grep' \ '' - '\' '' alias ls = 'ls --color = auto'
NeedHelp 18/01

comando -v man: / usr / bin / man
NeedHelp 18/01

1
@jayooin Ele está configurando o código de idioma padrão para o código de idioma padrão C. Não há nada de estranho nisso.
Kusalananda

Respostas:


39

Verifique a existência da MANOPTvariável.

MANOPT
Se $MANOPTestiver definido, ele será analisado antes da manlinha de comando e espera-se que esteja em um formato semelhante.

fonte

Exemplo:

$ MANOPT='foo bar'
$ export MANOPT
$ man man
man: Too many arguments
Try 'man --help' or 'man --usage' for more information.
$

Uma correção ad-hoc óbvia é unset MANOPT. Então você deve investigar de onde a variável veio.


Então, por que o erro Too many arguments? Como se eu export MANOPT=foo, por que não diz No manual entry for foo?
wjandrea 19/01

1
O @wjandrea manprovavelmente está se dividindo MANOPTem espaços e, em seguida, executando a matriz resultante getopt(3), e reclama se houver algum argumento que não seja de opção (ou seja, argumentos que não começam com um hífen). Eles poderiam ter usado uma mensagem de erro melhor. De qualquer forma, mesmo um único argumento é demais para isso: tente MANOPT=man man man.
mosvy 19/01
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.