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?


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.