Sự khác biệt giữa 'echo' và 'echo -e' [đã đóng]


25

Sự khác biệt giữa echovà là echo -egì? Những dấu ngoặc kép nào ("" hoặc '') nên được sử dụng với lệnh echo? tức là: echo "Print statement"hay echo 'Print statement'? Ngoài ra, các tùy chọn có sẵn có thể được sử dụng cùng với là echogì?


3
Cái quái gì vậy? echo -ekhông được xác định bởi POSIX và có thể thay đổi theo vỏ.
jordanm

Điều này có trả lời câu hỏi của bạn không? unix.stackexchange.com/questions/65804/ Từ
dhag

2
sử dụng man echođể đọc hướng dẫn cho echo.
mẫu

echo không thực thi các đối số của nó dưới dạng các lệnh, nó chỉ ... lặp lại chúng
Anthon

Câu trả lời:


33

echobởi chính nó hiển thị một dòng văn bản. Nó sẽ lấy bất cứ điều gì trong "..."hai dấu ngoặc kép sau đây , theo nghĩa đen, và chỉ cần in ra như nó là. Tuy nhiên, với việc echo -ebạn đang thực hiện echođể giải thích thoát dấu gạch chéo ngược. Vì vậy, với điều này trong tâm trí đây là một số ví dụ

INPUT: echo "abc\n def \nghi" 
OUTPUT:abc\n def \nghi

INPUT: echo -e "abc\n def \nghi"
OUTPUT:abc
 def 
ghi

Lưu ý: \nlà dòng mới, tức là trả lại xe ngựa. Nếu bạn muốn biết những trình tự khác được nhận dạng bằng cách echo -enhập vào man echothiết bị đầu cuối của bạn.


2
echođược tích hợp trong hầu hết các vỏ. thay vào đó man echosẽ thích tài liệu echolệnh độc lập.
Stéphane Chazelas

Bạn đang mô tả hành vi của GNU echohoặc shell GNU echokhi không ở chế độ tuân thủ Unix. Ở những nơi khác, hành vi thường sẽ khác nhau.
Stéphane Chazelas

3

Trong hầu hết các chuỗi SHELL echokhông thể thực hiện chuỗi thoát ( \n \t). Ở đâu echo -ecó thể

echo -e " This is \n an \t example"

Trích dẫn đơn và trích dẫn kép chủ yếu để xử lý các vấn đề nội suy. Bạn có thể tìm thêm chi tiết ở đây, Tại sao tiếng vang lại bỏ qua các ký tự trích dẫn của tôi?


Đó là cách khác. Trong hầu hết các shell (ksh88, ksh93, pdksh, mksh, Bourne, zsh, dash, bash và sh của tất cả các hệ thống tuân thủ Unix, một số trong số chúng như ksh93 hoặc bash chỉ trong một số môi trường) echokhông mở rộng các chuỗi thoát. Việc echotriển khai chấp nhận -ekhông tuân thủ POSIX.
Stéphane Chazelas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.