ผู้ชายไม่ทำงาน (มีการโต้แย้งมากเกินไป)


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
Kusalananda

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

command -v man: / usr / bin / man
NeedHelp

1
@jayooin มันตั้งค่าสถานที่เริ่มต้นให้เป็น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
@wjandrea manอาจแยกMANOPTช่องว่างแล้วเรียกใช้อาร์เรย์ผลลัพธ์ผ่านgetopt(3)และบ่นว่ามีอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกใด ๆ (เช่นอาร์กิวเมนต์ที่ไม่ได้ขึ้นต้นด้วยขีดกลาง) พวกเขาอาจใช้ข้อความแสดงข้อผิดพลาดที่ดีขึ้น Anyways แม้เพียงครั้งเดียวMANOPT=man man manอาร์กิวเมนต์เป็นมากเกินไปสำหรับมันลอง
mosvy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.