2009-03-18 31 views

Trả lời

22

Sử dụng

echo -e "\012" 
+2

Điều này đòi hỏi chức năng điều đó hoàn toàn không tương thích với POSIX (không chỉ là phần mở rộng, nhưng * chủ động không cho phép * theo đặc tả, cho phép không có cờ nào khác hơn '-n' được vinh danh), và sẽ không được vinh danh bằng cách bash trong chế độ POSIX nếu' Cờ xpg_echo' được đặt. –

28

Nếu bạn quan tâm đến tính di động, bạn sẽ thả vang và sử dụng printf (1):

printf '\012' 
+3

... hoặc, nếu lấy chuỗi thoát từ một nguồn không đáng tin cậy, 'printf '% b' '\ 012'', để tôn vinh các chuỗi đó nhưng không phải là nội dung chuỗi định dạng khác. –

11

Trên của tôi thiết bị đầu cuối,

printf '\012' >>output.txt 

công trình cho cả các đại diện bát phân của nhân vật ascii, và thập lục phân tương ứng:

printf '\xA' >>output.txt 

Lệnh

echo -en '\012' >>output.txt 
tuy nhiên

, không hoạt động đúng. Chỉ hexadecimals dường như làm việc với echo -e. -n loại bỏ dòng mới bổ sung mặc định từ echo.

+2

_My_ câu hỏi đã được thực sự về cách in hexadecimal đến một thiết bị đầu cuối - tìm thấy điều này thông qua google, và điều này trả lời câu hỏi của tôi rất tốt. Nó cũng trả lời câu hỏi của người hỏi. Nó xứng đáng được nhiều điểm hơn. – Wyatt8740

1

tôi đã không ASCII để có nghĩa là Unicode, ít nhất là trong trường hợp của tôi, nhưng printf "\x##" là không đủ cho giải pháp 2-byte của tôi, vì vậy tôi sử dụng cú pháp hơi khác nhau này để thay thế:

> printf "\u25ba" 
► 
Các vấn đề liên quan