Tôi đang cập nhật bài đăng này dựa trên các bình luận và câu trả lời khác, vì vậy các bình luận trước ngày 22 tháng 5 năm 2020 có thể không còn được áp dụng.
Bash không cung cấp cú pháp dựng sẵn cho nhận xét nhiều dòng nhưng có những bản hack sử dụng cú pháp bash hiện có "xảy ra để làm việc ngay bây giờ".
Cá nhân tôi nghĩ đơn giản nhất (nghĩa là ít ồn ào nhất, kỳ lạ nhất, dễ gõ nhất, rõ ràng nhất) là sử dụng HEREDOC được trích dẫn, nhưng hãy làm rõ những gì bạn đang làm và sử dụng cùng một dấu HEREDOC ở mọi nơi:
<<'### BLOCK COMMENT'
line 1
line 2
line 3
line 4
### BLOCK COMMENT
Trích dẫn một lần đánh dấu HEREDOC tránh một số tác dụng phụ phân tích cú pháp vỏ, chẳng hạn như các phần phụ kỳ lạ sẽ gây ra sự cố hoặc đầu ra và thậm chí phân tích cú pháp của chính điểm đánh dấu. Vì vậy, các trích dẫn đơn cho phép bạn tự do hơn trên điểm đánh dấu nhận xét đóng. Ví dụ: phần sau sử dụng hàm băm ba loại gợi ý nhận xét nhiều dòng trong bash. Điều này sẽ sụp đổ kịch bản nếu dấu ngoặc đơn không có. Ngay cả khi bạn xóa ###
, FOO{}
tập lệnh sẽ bị lỗi (hoặc gây ra sự thay thế xấu được in nếu không set -e
) nếu nó không dành cho các dấu ngoặc đơn:
set -e
<<'### BLOCK COMMENT'
something something ${FOO{}} something
more comment
### BLOCK COMMENT
ls
Tất nhiên bạn có thể chỉ cần sử dụng
set -e
<<'###'
something something ${FOO{}} something
more comment
###
ls
nhưng ý định của điều này chắc chắn ít rõ ràng hơn đối với một độc giả không quen thuộc với mánh khóe này.
Ngày nay, bất kỳ trình soạn thảo tốt nào cũng cho phép bạn nhấn ctrl- / hoặc tương tự, để bỏ / bình luận lựa chọn. Mọi người chắc chắn hiểu điều này:
# something something ${FOO{}} something
# more comment
# yet another line of comment
mặc dù phải thừa nhận, điều này gần như không thuận tiện như nhận xét khối ở trên nếu bạn muốn điền lại đoạn văn của mình.
Chắc chắn có những kỹ thuật khác, nhưng dường như không có cách nào "thông thường" để làm điều đó. Sẽ thật tuyệt nếu ###>
và ###<
có thể được thêm vào bash để chỉ ra bắt đầu và kết thúc khối bình luận, có vẻ như nó có thể khá đơn giản.