Xem xét
echo \ # this is a comment
foo
Điều này mang lại:
$ sh foo.sh
# this is a comment
foo.sh: line 2: foo: command not found
Sau một số tìm kiếm trên web, tôi đã tìm thấy một giải pháp của DigitalRoss trên trang web chị em Stack Overflow. Vì vậy, một người có thể làm
echo `: this is a comment` \
foo
Hay cách khác
echo $(: this is a comment) \
foo
Tuy nhiên, DigitalRoss không giải thích lý do tại sao các giải pháp này hoạt động. Tôi đánh giá cao một lời giải thích. Ông trả lời với một bình luận:
Đã từng có một
goto
lệnh shell được phân nhánh đến các nhãn được chỉ định như:
ở đây. Đãgoto
biến mất nhưng bạn vẫn có thể sử dụng: whatever
cú pháp ...:
là một loại nhận xét được phân tích cú pháp ngay bây giờ.
Nhưng tôi muốn biết thêm chi tiết và bối cảnh, bao gồm cả một cuộc thảo luận về tính di động.
Tất nhiên, nếu bất cứ ai có giải pháp khác, điều đó cũng sẽ tốt.
Xem thêm câu hỏi trước Làm thế nào để bình luận các lệnh nhiều dòng trong shell script? .
Mang tin nhắn về nhà từ các cuộc thảo luận dưới đây. Đây `: this is a comment`
chỉ là một sự thay thế lệnh. Đầu ra của : this is a comment
không có gì, và được đặt vào vị trí của `: this is a comment`
.
Một lựa chọn tốt hơn là như sau:
echo `# this is a comment` \
foo