человек не работает (слишком много аргументов)


23

Я получаю это сообщение об ошибке при попытке запуска manв системе Linux:

$ LC_ALL=C man man

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

Моя manкоманда не выглядит псевдонимом:

command -v man: /usr/bin/man 

В чем дело?


Что выводит «псевдоним человека» или просто «псевдоним»?
rbrtflr

1
Ваш manпсевдоним? Проверьте с помощью type manили command -v man.
Кусалананда

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

команда -v man: / usr / bin / man
NeedHelp

1
@jayooin Он устанавливает стандартную локаль по умолчанию C. В этом нет ничего странного.
Кусалананда

Ответы:


39

Проверьте наличие MANOPTпеременной.

MANOPT
Если $MANOPTустановлено, оно будет проанализировано до manкомандной строки и, как ожидается, будет в аналогичном формате.

источник

Пример:

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

Очевидное специальное решение - это unset MANOPT. Затем вы должны выяснить, откуда взялась переменная.


Так почему же ошибка Too many arguments? Как если бы я export MANOPT=foo, почему это не говорит No manual entry for foo?
wjandrea

1
@wjandrea man, вероятно, разделяется MANOPTна пробелы, а затем запускает результирующий массив getopt(3)и жалуется, если остались какие-либо неопциональные аргументы (т.е. аргументы, не начинающиеся с тире). Они могли бы использовать лучшее сообщение об ошибке. В любом случае, даже один аргумент слишком много для него: попробуйте MANOPT=man man man.
Мосви
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.