człowiek nie działa (zbyt wiele argumentów)

23

Podczas próby uruchomienia manw systemie Linux pojawia się błąd :

$ LC_ALL=C man man

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

Moje manpolecenie nie wydaje się być pseudonimem:

command -v man: /usr/bin/man 

Co się dzieje?

Potrzebuję pomocy
źródło
Jaka jest produkcja „alias man” lub po prostu „alias”?
rbrtflr
1
Czy jesteś manpseudonimem? Sprawdź za pomocą type manlub command -v man.
Kusalananda
alias ll = 'ls -l --color = auto | grep' \ '' - '\' '' alias ls = 'ls --color = auto'
NeedHelp
polecenie -v man: / usr / bin / man
NeedHelp
1
@jayooin Ustawia domyślne ustawienia narodowe na standardowe Custawienia regionalne. Nie ma w tym nic dziwnego.
Kusalananda

Odpowiedzi:

39

Sprawdź istnienie MANOPTzmiennej.

MANOPT
Jeśli $MANOPTjest ustawiony, zostanie przeanalizowany przed manwierszem poleceń i oczekuje się, że będzie w podobnym formacie.

źródło

Przykład:

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

Oczywistą poprawką ad-hoc jest unset MANOPT. Następnie powinieneś sprawdzić, skąd pochodzi zmienna.

Kamil Maciorowski
źródło
Więc dlaczego jest błąd Too many arguments? Na przykład, jeśli ja export MANOPT=foo, dlaczego to nie mówi No manual entry for foo?
wjandrea
1
@wjandrea manprawdopodobnie dzieli MANOPTna spacje, a następnie przepuszcza wynikową tablicę getopt(3)i narzeka, jeśli zostaną pozostawione argumenty inne niż opcje (tj. argumenty, które nie rozpoczynają się myślnikiem). Mogli użyć lepszego komunikatu o błędzie. W każdym razie nawet jeden argument to za dużo: spróbuj MANOPT=man man man.
mosvy