आदमी काम नहीं करता (बहुत सारे तर्क)


23

manलिनक्स सिस्टम पर चलने का प्रयास करने पर मुझे यह त्रुटि मिलती है:

$ 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 

क्या चल रहा है?


"उर्फ मैन" या बस "उर्फ" का आउटपुट क्या है?
राबर्टफ्ल्र

1
क्या आपका manउपनाम है? के साथ जांचें type manया command -v man
Kusalananda

उर्फ ll = 'ls -l --color = ऑटो | ग्रेप' \ '' - '\' '' उर्फ ls = 'ls --color = ऑटो'
NeedHelp

कमांड -v आदमी: / usr / बिन / आदमी
NeedHelp

1
@ संजय यह डिफ़ॉल्ट लोकेल को मानक Cलोकेल में सेट कर रहा है। उस बिट के बारे में कुछ भी अजीब नहीं है।
Kusalananda

जवाबों:


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
@wandrea manशायद MANOPTरिक्त स्थान पर बंटवारा कर रहा है और फिर परिणामस्वरूप सरणी को चला रहा है getopt(3), और यदि कोई गैर-विकल्प तर्क (डैश के साथ शुरू नहीं होने वाले तर्क) बचे हैं तो शिकायत करें। वे एक बेहतर त्रुटि संदेश का उपयोग कर सकते थे। वैसे भी, एक भी तर्क इसके लिए बहुत अधिक है: प्रयास करें MANOPT=man man man
शाम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.