2010-05-08 31 views
9

Chính xác thì việc sử dụng '-' trong bash là gì? Tôi biết họ có thể được sử dụng chonhững gì hiện '-' đứng trong bash?

  1. cd - # để đưa bạn đến 'thư mục làm việc hiện tại' cũ
  2. some stream generating command | vim - # bằng cách nào đó vim nhận được văn bản.

Câu hỏi của tôi chính xác là gì - trong bash? Tôi có thể sử dụng ngữ cảnh nào khác?

Trân Arun

+4

@Jonas: Bash ** Scripting ** là tên. – aviraldg

Trả lời

17

đó phụ thuộc vào ứng dụng.

cd - 

trở về thư mục cuối cùng bạn đang ở.

Thường - là viết tắt của stdin hoặc stdout. Ví dụ:

xmllint - 

không kiểm tra tệp XML nhưng kiểm tra XML trên stdin. Mẫu:

xmllint - <<EOF 
<root/> 
EOF 

Điều này cũng đúng cho cat:

cat - 

đọc từ stdin. Một ví dụ cuối cùng nơi - đứng cho stdout:

wget -O- http://google.com 

sẽ nhận google.com bởi HTTP và gửi nó vào stdout.

Nhân tiện: Điều đó không liên quan gì đến vỏ của bạn (ví dụ: bash). Nó chỉ là ngữ nghĩa của ứng dụng được gọi.

1

Từ tldp:

Điều này có thể được thực hiện ví dụ sử dụng một dấu gạch ngang (-) để chỉ ra rằng một chương trình nên đọc từ một ống

này giải thích cách dụ vim của bạn được dữ liệu của nó .

3

- trong bash không có ý nghĩa như một đối số độc lập (tôi sẽ không đi xa như để nói nó không có ý nghĩa trong trình bao - ví dụ như được sử dụng để mở rộng, ví dụ: ls [0-9]* liệt kê tất cả các tệp bắt đầu bằng một chữ số).

Theo như một giá trị tham số độc lập, bash sẽ thực hiện hoàn toàn không có gì đặc biệt với nó và chuyển đến lệnh.

Lệnh nào phù hợp với từng chương trình riêng lẻ - có thể là khá nhiều thứ.

Có một quy ước thường được sử dụng là đối số - cho biết chương trình mà đầu vào cần được đọc từ STDIN thay vì tệp.Một lần nữa, đây chỉ đơn thuần là có bao nhiêu chương trình được mã hóa và về mặt kỹ thuật không có gì liên quan đến bash.

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