con người không làm việc (quá nhiều tranh luận)


23

Tôi gặp lỗi này khi cố chạy mantrên hệ thống Linux:

$ LC_ALL=C man man

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

manLệnh của tôi dường như không phải là bí danh:

command -v man: /usr/bin/man 

Chuyện gì đang xảy ra vậy?


Đầu ra của "bí danh" hay đơn giản là "bí danh" là gì?
rbrtflr

1
manbí danh của bạn ? Kiểm tra với type manhoặc command -v man.
Kusalananda

bí danh ll = 'ls -l --color = auto | grep' \ '' - '\' '' bí danh ls = 'ls --color = auto'
NeedHelp

lệnh -v man: / usr / bin / man
NeedHelp

1
@jayooin Đó là cài đặt miền địa phương mặc định thành miền địa phương tiêu chuẩn C. Không có gì lạ về bit đó.
Kusalananda

Câu trả lời:


39

Kiểm tra sự tồn tại của MANOPTbiến.

MANOPT
Nếu $MANOPTđược đặt, nó sẽ được phân tích cú pháp trước mandòng lệnh của và dự kiến ​​sẽ có định dạng tương tự.

nguồn

Thí dụ:

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

Một sửa chữa ad-hoc rõ ràng là để unset MANOPT. Sau đó, bạn nên điều tra nơi biến đến từ.


Vậy tại sao lại có lỗi Too many arguments? Giống như nếu tôi export MANOPT=foo, tại sao nó không nói No manual entry for foo?
wjandrea

1
@wjandrea mancó thể đang phân tách MANOPTtrên các khoảng trắng và sau đó chạy mảng kết quả thông qua getopt(3)và khiếu nại nếu có bất kỳ đối số không phải tùy chọn nào (nghĩa là các đối số không bắt đầu bằng dấu gạch ngang) bị bỏ lại. Họ đã có thể sử dụng một thông báo lỗi tốt hơn. Dù sao, ngay cả một đối số duy nhất là quá nhiều cho nó: thử MANOPT=man man man.
mosvy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.