2017-09-23 35 views
7

Hôm nay tôi thấy một tập lệnh bash sử dụng dấu hai chấm để biểu thị nhận xét. Sự khác nhau giữa việc sử dụng dấu hai chấm và dấu băm là gì?Sự khác biệt giữa: và # cho các bình luận Bash

: This is a comment. 
# This is also a comment. 

Đối với một, tôi biết bạn không thể sử dụng dấu hai chấm cho một lời nhận xét dấu:

cd somedir : This won't work as a comment. 

Nhưng thực tế là các ví dụ trên các công trình đã cho tôi bối rối về cách : được đánh giá.

+1

Bạn có thể muốn đọc các cuộc thảo luận liên quan https://stackoverflow.com/questions/3224878/what-is-the-purpose-of-the-colon-gnu-bash-builtin – slevy1

+0

Để có nhận xét sau, bạn cần sử dụng ';:'. Chỉ đùa thôi, hãy xem câu trả lời của người khác :-) – paxdiablo

Trả lời

9

: chỉ đơn giản là một bí danh cho true, và true bỏ qua đối số của nó:

# Does nothing: 
true foo bar etc hello 

# Does the same: 
: foo bar etc hello 

Nó không phải là một bình luận và không bao giờ nên được sử dụng như một bình luận, bởi vì tất cả các đối số của nó vẫn đang phân tích và đánh giá:

: This "comment" actually executes this command: $(touch foo) 
ls -l foo 

hay như ở đây, nơi nổi bật cú pháp StackOverflow của nhặt mà lệnh ở giữa thực sự chỉ là văn bản, ngay cả khi một con người không:

: The command below won't run: 
echo "Hello World" 
: because the surrounding "comments" each contain a ' characters 
1

':' là lệnh nội trang hệ vỏ không có gì ngoài việc mở rộng đối số và trả về true. Từ bash man page:

: [arguments] 
No effect; the command does nothing beyond expanding arguments 
and performing any specified redirections. A zero exit code is 
returned. 

# là một nhận xét. Nhưng nó chỉ hoạt động cho các dòng đơn.

Bạn có thể đọc thêm về ':' lệnh here và câu trả lời hay hơn here.

Các vấn đề liên quan