l'homme ne fonctionne pas (trop d'arguments)

23

J'obtiens ceci une erreur en essayant de fonctionner mansur un système Linux:

$ LC_ALL=C man man

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

Ma mancommande ne semble pas être un alias:

command -v man: /usr/bin/man 

Que se passe-t-il?

Besoin d'aide pour
la source
Quelle est la sortie de "alias man" ou simplement "alias"?
rbrtflr
1
Êtes-vous manun alias? Vérifiez avec type manou command -v man.
Kusalananda
alias ll = 'ls -l --color = auto | grep' \ '' - '\' '' alias ls = 'ls --color = auto'
NeedHelp
commande -v man: / usr / bin / man
NeedHelp
1
@jayooin Il définit les paramètres régionaux par défaut sur les Cparamètres régionaux standard . Il n'y a rien d'étrange à ce sujet.
Kusalananda

Réponses:

39

Vérifiez l'existence d'une MANOPTvariable.

MANOPT
Si $MANOPTest défini, il sera analysé avant manla ligne de commande de et devrait être dans un format similaire.

la source

Exemple:

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

Une solution ad hoc évidente est de unset MANOPT. Ensuite, vous devez rechercher d'où vient la variable.

Kamil Maciorowski
la source
Alors, pourquoi l'erreur Too many arguments? Comme si je export MANOPT=foo, pourquoi ça ne dit pas No manual entry for foo?
wjandrea
1
@wjandrea manse divise probablement MANOPTen espaces, puis exécute le tableau résultant getopt(3), et se plaint s'il reste des arguments non optionnels (c'est-à-dire des arguments ne commençant pas par un tiret). Ils auraient pu utiliser un meilleur message d'erreur. Quoi qu'il en soit, même un seul argument est trop pour lui: essayez MANOPT=man man man.
mosvy