2011-08-22 52 views
11

Tên và chức năng của ký tự thoát \c trong Bash là gì? Giá trị số của nó là gì? Tôi đã thấy rằng \cx là một nhân vật điều khiển, nhưng những gì về đồng bằng \c? Dường như:Ký tự Escape Bash " c" là gì?

echo -e "Hello World\c" 

echo -en "Hello World" 

là tương đương. Tuy nhiên, Python không sử dụng nó như là một ký tự thoát, và nó bị thiếu trong tất cả các danh sách ký tự thoát mà tôi đã tìm thấy. Đây có phải là hành vi đặc thù của Bash không?

+0

tôi đã cố gắng mà trong c và nó in "c" trên màn hình http://codepad.org/sBWJfPkc –

Trả lời

12

Đó là thực sự cụ thể đối với một số phiên bản của echo (Tôi khá chắc chắn rằng \c đến từ SysV trong khi -n phiên bản là một BSD-ism).

Điều đó đơn giản có nghĩa là không xuất dòng mới.

4

Đó là ký tự điều khiển 'Kết thúc Văn bản'; nó thông báo cho Shell rằng đã kết thúc văn bản.

Không hoàn toàn chắc chắn rằng nó có liên quan nữa, nhưng tôi có thể sai.

đây là doc:

http://en.wikipedia.org/wiki/ASCII#ASCII_control_characters

và:

http://en.wikipedia.org/wiki/End-of-text_character

+0

CTRL-C là ký tự ETX nhưng có rất ít việc phải làm với trường hợp cụ thể này, nếu không FF sẽ là \ l thay vì \ f, newline woulf là \ j thay vì \ n và cứ thế. – paxdiablo

+0

Tôi không hiểu ý bạn là gì, \ c là ETX, đó là những gì tôi đã nói - FF là gì? –

+0

Xin chào @Russ C, tôi đánh giá cao câu trả lời. Tuy nhiên, có vẻ như @paxdiablo là đúng. Ví dụ, hãy thử: 'echo -e" Hello World \ 03 "' (liên kết bạn đã liệt kê giá trị số của ETX là 3). Nó không cho kết quả tương tự như 'echo -e 'Hello World \ c" '. –

0

Bạn có thể cập nhật câu hỏi của mình thêm một chút ngữ cảnh về cách \ c đang được sử dụng không?

Bạn có thể sử dụng \c để thoát khỏi các ký tự điều khiển mà bạn có thể, giả sử viết vào một tệp hoặc đường ống làm đầu vào cho lệnh khác.

này sẽ ghi vào thiết bị đầu cuối dòng chữ "một số lệnh" theo sau nhị phân Ctrl-d (ascii 0x4):

echo some control string $'\cd' 

Xem danh sách đầy đủ của các nhân vật thoát khỏi trang bash người đàn ông: http://linux.die.net/man/1/bash

12

Xem echo man page hoặc phần trên tiếng vang trong Bash Builtins section of the Bash manual:

vang giải thích chuỗi thoát sau:

...
\ c
          ngăn chặn đầu ra tiếp tục

+0

Cảm ơn bạn đã tham khảo và xác nhận câu trả lời của paxdiablo. –

+0

đáng nhắc đến là \ c không được công nhận, nếu -e không có hiệu lực. –

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