Trả lời
GNU Coding Standards ủy quyền --version
và --help
và tôi đã mong đợi bất kỳ chương trình CLI nào hỗ trợ các chương trình này. Ngoài ra, nó thực sự phụ thuộc vào chương trình là gì, nhưng dưới đây là một số gợi ý khác: -q
hoặc --quiet
cho đầu ra thấp hơn, -v
hoặc --verbose
để có thêm đầu ra, -d
hoặc --debug
để gỡ lỗi.
Một phiên bản ngắn và dài của đối số dòng lệnh. Kiểm tra xem có một cổng thư viện getopt
cho ngôn ngữ lập trình mà bạn sử dụng hay không. Nó sẽ giúp bạn phân tích các đối số dòng lệnh.
--config-file=FILE | -C FILE
--help | -h
--usage | -u
--version | -v
Bao gồm các tùy chọn liên quan khác cho ứng dụng của bạn.
nhờ gợi ý trên getopt sẽ đưa vào nó –
Tôi khuyên bạn nên có tùy chọn trợ giúp, phiên bản, cài đặt độ dài đầu ra. Các công tắc khác tùy thuộc vào ứng dụng của bạn.
Tùy thuộc vào nền tảng.
Trên Windows, /? hoặc/h hoặc/trợ giúp là phổ biến.
Trên Unix, một lệnh phải có trang hướng dẫn.
Trên các biến thể Unix trong đó các quy ước Gnu được theo sau (ví dụ: Linux), nó phải phản hồi --help và --version. Thậm chí tốt hơn, nó có thể tích hợp với tự động hoàn thành bash.
Ngoài ra, hãy xem các chương trình khác 'trong cùng khu vực với bạn và sử dụng cùng các tùy chọn ở nơi có ý nghĩa. Ví dụ:
- -r/- đệ quy để recurse xuống thư mục
- -q/- yên tĩnh để ngăn chặn đầu ra
- -v/- verbose để tạo ra tiết, sản lượng chẩn đoán
- -n để thực thi mà không thay đổi bất cứ điều gì
Nếu chương trình của bạn chấp nhận tên tệp làm đối số thì quy ước chung là một dấu gạch nối đơn có nghĩa là 'đọc từ stdin' và gạch nối kép có nghĩa là 'xử lý đối số tiếp theo dưới dạng tệp ngay cả khi nó bắt đầu bằng dấu gạch ngang '.
Để chính xác hơn, hai dấu gạch ngang ('--') thực sự tách các tùy chọn khỏi toán hạng. Vì vậy, nó có nghĩa là 'xử lý tất cả các đối số sau '--' làm toán hạng' và không 'xử lý đối số tiếp theo dưới dạng tệp ngay cả khi nó bắt đầu bằng dấu gạch nối'. Xem khối lượng Định nghĩa cơ sở của IEEE Std 1003.1-2001, Mục 12.2, Nguyên tắc cú pháp tiện ích. –
-h là phải trên * nix. Tôi muốn nói tương tự cho /? trên Windows, nhưng các chương trình có sẵn cho cả hai nền tảng thường đi theo kiểu * nix. Đó có thể là do getopt và bạn bè.
Một số yếu tố cần thiết:
-h, --help
-v, --version
-u, --usage
Nếu ứng dụng làm thay đổi bất kỳ tập tin nào cả:
--dry-run Do not modify any files (but work as if you did)
Nếu ứng dụng sử dụng các file cấu hình, tùy chọn để sử dụng một tập tin cấu hình chi tiết hoặc thư mục.
Một số công tắc hoạt động chính để chạy không tương tác và thực hiện công việc:
mysql --execute="SELECT * FROM ..."
cmd.exe /C "dir"
Eric S. Raymond đưa ra một tổng quan tuyệt vời của tùy chọn dòng lệnh UNIX phổ biến nhất trong cuốn sách tuyệt vời của ông The Art of Unix Programming. Nó chủ yếu là nói về các tùy chọn một chữ cái, nhưng một nguồn tài nguyên lớn về vấn đề đó tuy nhiên.
Tôi đồng ý với tất cả các đối số nêu trên nhưng muốn chỉ ra một điều khác: Bạn có thể muốn ứng dụng của bạn chấp nhận kiểu dài, ngắn và BSD cho tất cả các đối số. Tất nhiên phong cách BSD có thể được ommited nếu bạn cảm thấy rằng không ai trong số người dùng của bạn sẽ được thoải mái bằng cách sử dụng nó. Phong cách lâu dài giúp thêm ý nghĩa cho các đối số và làm cho chúng dễ nhớ hơn khi bắt đầu với ứng dụng.
- 1. Thư viện tốt nhất/phổ biến để phát triển ứng dụng/tập lệnh CLI là gì?
- 2. Cách tốt để xử lý số phiên bản trong một ứng dụng Java là gì?
- 3. Người mới bắt đầu cơ bản trong Java: 'đối số' có nghĩa là gì trong Java
- 4. Phát triển ứng dụng di động Marmalade - Marmalade có phải là lựa chọn tốt không?
- 5. Có phải C + + CLI là phần phụ của C++ không?
- 6. Một số cách mà mọi người triển khai các thay đổi cơ sở dữ liệu quan hệ bằng cách sử dụng Node.js là gì?
- 7. Điều gì có thể là cách tốt để triển khai các ứng dụng Web ASP.Net?
- 8. REST có phải là lựa chọn tốt cho các ứng dụng web GUI không?
- 9. Loại nội dung phải là gì đối với lỗi 4xx mà không có nội dung?
- 10. "_in_" và "_in_opt_" có nghĩa là gì trong C++/CLI?
- 11. Cách tốt nhất để thực hiện nhận dạng số cơ bản là gì?
- 12. Lego MindStorms có phải là lựa chọn tốt cho việc phát triển robot cơ bản không?
- 13. Các tham số đối với CGPathAddCurveToPoint có nghĩa là gì?
- 14. Trình bao bọc GUI xung quanh ứng dụng GPL CLI, nó có phải là một dẫn xuất không?
- 15. Các đối số cho sysctl() là gì?
- 16. các công cụ tốt nhất cho các ứng dụng thử nghiệm đơn vị iphone là gì?
- 17. Đối số NULL có phải là một thực tế không tốt?
- 18. Dấu mũ (‘^’) có nghĩa là gì trong C++/CLI?
- 19. JavaScript có phải là ngôn ngữ ứng dụng không?
- 20. Các đối tượng Hibernate không có các bảng cơ bản
- 21. Các cờ PHP trong các đối số hàm là gì?
- 22. Cách tốt nhất để bản địa hóa một ứng dụng WPF là gì, sans LocBAML?
- 23. Cách tốt nhất để ứng dụng khách ngay lập tức phản ứng với bản cập nhật trong cơ sở dữ liệu là gì?
- 24. DDD có phù hợp với mọi loại ứng dụng không?
- 25. Cơ chế tốt nhất để lưu trữ cài đặt xác thực trong ứng dụng WinForms là gì
- 26. Tiêu chuẩn phải là gì đối với URL ReSTful?
- 27. Erlang: Cách truy cập cờ CLI (đối số) dưới dạng biến môi trường ứng dụng?
- 28. Ứng dụng com.sec.android.provider. * Là gì?
- 29. Đối tượng JSON lồng nhau - tôi có phải sử dụng mảng cho mọi thứ không?
- 30. Lý do cơ bản cho kích thước fread/fwrite là gì và được tính là đối số?
Bạn có nghĩa là đối số dòng lệnh hoặc tham số, không phải lệnh. – aib
@aib, tôi đã sửa nó. – UnkwnTech
Câu hỏi hay! +1 – Cerebrus