Một ví dụ tốt về một kịch bản bash cần nghiên cứu để tìm hiểu các quy ước mã hóa tốt là gì?


12

Tôi đã học những điều cơ bản về lập trình trong bash. Tôi muốn nghiên cứu một vài ví dụ về tập lệnh bash để tôi có thể học thói quen tốt cho tập lệnh bash.

Cụ thể, tôi quan tâm đến các ví dụ về tập lệnh bash hiển thị:

  • Làm thế nào để xử lý các đối số và kích hoạt chức năng có điều kiện
  • Làm thế nào để kiểm tra lỗi đầu vào
  • làm thế nào để thực hiện hoàn thành lệnh
  • Làm thế nào để tổ chức một tập lệnh bash thành các hàm, các lệnh, v.v.
  • làm thế nào để trình bày thông điệp trợ giúp

Ví dụ, tôi đã học được rất nhiều từ autorandr trên github . Có bất kỳ tập lệnh hoặc kho lưu trữ tập lệnh nào khác mà tôi có thể tìm hiểu về các quy ước tập lệnh bash không?


1
Một lưu ý về nơi không cần tìm: nhiều tập lệnh init hệ thống được đóng gói bởi hầu hết các distro trong /etchoặc bất cứ nơi nào có đầy đủ các tập lệnh shell shell xấu, vì vậy bạn nên tránh sử dụng chúng làm ví dụ.
jw013

Không biết lý do tại sao điều này có một downvote, +1
n0pe

1
các quy ước mã hóa "tốt" cho bash không? Theo cách tôi thấy, khi bạn sử dụng bash, bạn thường quan tâm nhiều hơn đến việc làm cho nó thực hiện công việc (cực kỳ hạn chế) một cách hiệu quả và càng tốt càng tốt. Nếu bạn muốn mã thanh lịch và sạch sẽ, bạn sử dụng ngôn ngữ lập trình thực tế.
Shadur

@Shadur: có quá nhiều ngôn ngữ, vì vậy mọi người đều có quyền giảm thiểu việc sử dụng những ngôn ngữ đó, như khi viết một ứng dụng GUI Gtk3 bằng cách sử dụng các ràng buộc bash và bash thuần túy.
dotbit

Câu trả lời:


6

Ổ cắm không biết xấu hổ, nhưng bạn đã hỏi ví dụ:

Và nếu bạn muốn có một tài liệu tham khảo tốt, hãy sử dụng Wiki của Greg . Đó là một khu vườn hỗn loạn và vẻ đẹp không thể đọc được, với cách tiếp cận thực tế để hoàn thành công việc theo cách tốt nhất. Chỉ cần thực sự, thực sự cẩn thận để điều tra đúng trước khi hỏi bất cứ điều gì trên #bash - Họ có thể rất quyết liệt.

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.