Echo dòng mới trong bản in Bash theo nghĩa đen \ n

2590
Sergey 2011-12-12 11:01.

Trong Bash, hãy thử điều này:

echo -e "hello\nworld"

Nhưng nó không in một dòng mới, mà thôi \n. Làm thế nào tôi có thể làm cho nó in dòng mới?

Tôi đang sử dụng Ubuntu 11.04.

22 answers

3129
sth 2011-12-12 11:04.

Bạn có thể sử dụng printfthay thế:

printf "hello\nworld\n"

printfcó hành vi nhất quán hơn echo. Hành vi của echorất khác nhau giữa các phiên bản khác nhau.

1828
choroba 2011-12-12 11:04.

Bạn có chắc bạn đang ở trong bash? Hoạt động cho tôi, theo cả bốn cách:

echo -e "Hello\nworld"
echo -e 'Hello\nworld'
echo Hello$'\n'world
echo Hello ; echo world
612
Vanuan 2012-11-02 23:39.
echo $'hello\nworld'

bản in

hello
world

$''chuỗi sử dụng ANSI C Trích dẫn :

Các từ của hình thức được xử lý đặc biệt. Từ mở rộng thành chuỗi , với các ký tự thoát ra sau dấu gạch chéo ngược được thay thế như được chỉ định bởi tiêu chuẩn ANSI C.$'string'

149
Nayeem Zen 2014-03-01 12:14.

Bạn luôn có thể làm được echo "".

ví dụ

echo "Hello"
echo ""
echo "World"
78
Harsha Biyani 2017-12-06 01:06.

Thử

echo -e "hello\nworld"
hello
world

đã làm việc cho tôi trong nanobiên tập viên.

Từ trang người đàn ông:

-e cho phép giải thích các thoát dấu gạch chéo ngược

43
Uncle Iroh 2013-08-09 10:15.

Trong trường hợp ngẫu nhiên ai đó thấy mình đập đầu vào tường để cố gắng tìm ra lý do tại sao kịch bản của đồng nghiệp không in dòng mới, hãy để ý điều này ->

#!/bin/bash
function GET_RECORDS()
{
   echo -e "starting\n the process";
}

echo $(GET_RECORDS);

Như ở trên, quá trình chạy thực tế của phương thức có thể được bao bọc trong một tiếng vọng thay thế bất kỳ tiếng vọng nào có thể có trong chính phương thức đó. Rõ ràng là tôi đã tưới cái này xuống cho ngắn gọn, không dễ phát hiện ra như vậy!

Sau đó, bạn có thể thông báo cho đồng đội của mình rằng cách tốt hơn để thực thi các chức năng sẽ như sau:

#!/bin/bash
function GET_RECORDS()
{
   echo -e "starting\n the process";
}

GET_RECORDS;

POSIX 7 trên echo

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html

-e không được xác định và dấu gạch chéo ngược được xác định triển khai:

Nếu toán hạng đầu tiên là -n, hoặc nếu bất kỳ toán hạng nào chứa ký tự <backslash>, thì kết quả được xác định thực thi.

trừ khi bạn có phần mở rộng XSI tùy chọn.

Vì vậy, tôi khuyên bạn nên sử dụng printfthay thế, được chỉ định rõ:

toán hạng định dạng sẽ được sử dụng làm chuỗi định dạng được mô tả trong Kí hiệu định dạng tệp XBD [...]

các định dạng tập tin Notation :

\ n <newline> Di chuyển vị trí in đến đầu dòng tiếp theo.

Cũng nên nhớ rằng Ubuntu 15.10 và hầu hết các bản phân phối thực hiện echocả hai như sau:

  • tích hợp sẵn một Bash: help echo
  • một tệp thực thi độc lập: which echo

điều này có thể dẫn đến một số nhầm lẫn.

25
R Sun 2019-06-02 06:13.

Đơn giản chỉ cần gõ

echo

để có một dòng mới

24
Sathesh 2014-04-20 09:05.

Điều này phù hợp với tôi trong Raspbian,

echo -e "hello\\nworld"
16
alinsoar 2012-11-24 01:10.
str='hello\nworld'
$ echo | sed "i$str"
hello
world
8
vanishedzhou 2018-08-17 17:56.

Nó hoạt động cho tôi trong CentOS:

echo -e ""hello\nworld""
8
vinzee 2018-08-31 21:40.

Bạn cũng có thể làm:

echo "hello
world"

Điều này hoạt động cả bên trong tập lệnh và từ dòng lệnh.
Trong dòng lệnh, nhấn Shift+ Enterđể ngắt dòng bên trong chuỗi.

Điều này phù hợp với tôi trên macOS và Ubuntu 18.04 của tôi

4
DNT 2014-02-01 04:20.

Một mục nhập nữa ở đây cho những người không làm cho nó hoạt động với bất kỳ giải pháp nào trong số này và cần nhận giá trị trả về từ hàm của chúng:

function foo()
{
    local v="Dimi";
    local s="";
    .....
    s+="Some message here $v $1\n"
    .....
    echo $s } r=$(foo "my message");
echo -e $r;

Chỉ có thủ thuật này hoạt động trong Linux mà tôi đang làm việc với bash này:

GNU bash, version 2.2.25(1)-release (x86_64-redhat-linux-gnu)

Hy vọng nó sẽ giúp ai đó có vấn đề tương tự.

4
TanisDLJ 2014-05-14 22:58.

Kịch bản của tôi:

echo "WARNINGS: $warningsFound WARNINGS FOUND:\n$warningStrings

Đầu ra:

WARNING : 2 WARNINGS FOUND:\nWarning, found the following local orphaned signature file:

Trên kịch bản bash của tôi, tôi đã phát điên lên như bạn cho đến khi tôi vừa thử:

echo "WARNING : $warningsFound WARNINGS FOUND: $warningStrings"

Chỉ cần nhấn enter nơi bạn muốn chèn bước nhảy đó. Đầu ra bây giờ là:

WARNING : 2 WARNINGS FOUND:
Warning, found the following local orphaned signature file:
4
Dhwanit 2017-05-30 21:00.

Điều này tốt hơn có thể được thực hiện như

x="\n"
echo -ne $x

-tùy chọn sẽ giải thích dấu gạch chéo ngược cho trình tự thoát
-n tùy chọn sẽ loại bỏ dòng mới ở cuối trong đầu ra

PS: lệnh echo có tác dụng luôn bao gồm một dòng mới ở cuối trong đầu ra nên -n được yêu cầu để tắt điều đó (và làm cho nó ít nhầm lẫn hơn)

4
Xenon 2020-03-14 07:50.

Tôi chỉ sử dụng echo không có đối số

echo "Hello"
echo
echo "World"
3
Avinash Raj 2014-05-05 23:32.

Bạn cũng có thể sử dụng tiếng vang với dấu ngoặc nhọn,

$ (echo hello; echo world)
hello
world
3
PesaThe 2018-07-24 09:54.

Có một phần mở rộng tham số mới được thêm vào để diễn giải các trình tự thoát:bash 4.4

${[email protected]} - E operator

Phần mở rộng là một chuỗi là giá trị của tham số với các chuỗi thoát dấu gạch chéo ngược được mở rộng như với $'…'cơ chế trích dẫn.

$ foo='hello\nworld' $ echo "${[email protected]}"
hello
world
3
skiggety 2019-07-02 10:06.

Nếu bạn đang viết script và sẽ lặp lại các dòng mới như một phần của các thông báo khác nhiều lần, một giải pháp đa nền tảng tốt là đặt một dòng mới theo nghĩa đen trong một biến như vậy:

newline='
'

echo "first line$newlinesecond line" echo "Error: example error message n${newline}${usage}" >&2 #requires usage to be defined
0
Hunter Frazier 2018-05-26 21:14.

Đôi khi bạn có thể chuyển nhiều chuỗi được phân tách bằng dấu cách và nó sẽ được hiểu là \n.

Ví dụ khi sử dụng tập lệnh shell cho thông báo nhiều dòng:

#!/bin/bash
notify-send 'notification success' 'another line' 'time now '`date +"%s"`
0
John Jai 2019-07-20 09:04.

Tôi phải đặt xung quanh văn bản bằng dấu ngoặc kép trong khi sử dụng làm bí danh trong hồ sơ bash (MacOx, iTerm).

alias helloworld="echo -e \"hello \n world\""
0
Joe Healy 2020-05-12 04:52.

Điều này đã đưa tôi đến đó ...

outstuff=RESOURCE_GROUP=[$RESOURCE_GROUP]\\nAKS_CLUSTER_NAME=[$AKS_CLUSTER_NAME]\\nREGION_NAME=[$REGION_NAME]\\nVERSION=[$VERSION]\\nSUBNET-ID=[$SUBNET_ID] printf $outstuff

Sản lượng:

RESOURCE_GROUP=[akswork-rg]
AKS_CLUSTER_NAME=[aksworkshop-804]
REGION_NAME=[eastus]
VERSION=[1.16.7]
SUBNET-ID=[/subscriptions/{subidhere}/resourceGroups/makeakswork-rg/providers/Microsoft.Network/virtualNetworks/aks-vnet/subnets/aks-subnet]

Related questions

MORE COOL STUFF

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett đã bất chấp những lời khuyên hẹn hò điển hình khi cô gặp chồng mình.

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Michael Sheen là một diễn viên phi lợi nhuận nhưng chính xác thì điều đó có nghĩa là gì?

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Ngôi sao của Hallmark Colin Egglesfield chia sẻ về những cuộc gặp gỡ với người hâm mộ ly kỳ tại RomaDrama Live! cộng với chương trình INSPIRE của anh ấy tại đại hội.

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Bạn sẽ phải phủi sạch đầu đĩa Blu-ray hoặc DVD để xem tại sao Northern Exposure trở thành một trong những chương trình nổi tiếng nhất của thập niên 90.

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

8 công dụng tuyệt vời của Baking Soda và Giấm

8 công dụng tuyệt vời của Baking Soda và Giấm

Bạn biết đấy, hai sản phẩm này là nguồn điện để làm sạch, riêng chúng. Nhưng cùng với nhau, chúng có một loạt công dụng hoàn toàn khác.

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Thủy điện rất cần thiết cho lưới điện của Hoa Kỳ, nhưng nó chỉ tạo ra năng lượng khi có nước di chuyển. Bao nhiêu nhà máy thủy điện có thể gặp nguy hiểm khi các hồ và sông cạn kiệt?

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Tóc tỉa từ các tiệm và các khoản quyên góp cá nhân có thể được tái sử dụng như những tấm thảm thấm dầu và giúp bảo vệ môi trường.

DRM của Ubisoft Denies Assassin's Creed Origins đang tấn công CPU của bạn

DRM của Ubisoft Denies Assassin's Creed Origins đang tấn công CPU của bạn

Kể từ khi phát hành Assassin's Creed Origins trên PC, một số người dùng đã phàn nàn rằng việc sử dụng CPU của trò chơi là rất lớn, đôi khi tăng đến 90-100%. Điều đó không bình thường, và dẫn đến cáo buộc rằng DRM mới của trò chơi là thủ phạm.

Hãy hỏi Tiến sĩ NerdLove: Tôi lo lắng bạn gái của tôi sẽ tự sát nếu chúng tôi chia tay

Hãy hỏi Tiến sĩ NerdLove: Tôi lo lắng bạn gái của tôi sẽ tự sát nếu chúng tôi chia tay

Xin chào, tất cả các bạn Những con thú tình dục trên Internet. Chào mừng bạn đến với Ask Dr.

Những hình dán này cho bạn biết nếu con bạn bị sốt để bạn không phải đánh thức chúng

Những hình dán này cho bạn biết nếu con bạn bị sốt để bạn không phải đánh thức chúng

Ảnh: Fever-Bugz Đã có vài lần tôi và chồng nhìn chằm chằm vào đứa con gái bốn tuổi của mình khi nó đang ngủ, đưa tay sờ lên trán nó một cách bối rối. “Cô ấy có cảm thấy nóng không? Tôi nghĩ cô ấy cảm thấy nóng.

Đây có phải là sự khởi đầu cho sự kết thúc của việc giam giữ Brittney Griner?

Đây có phải là sự khởi đầu cho sự kết thúc của việc giam giữ Brittney Griner?

Brittney Griner (r.) Ngay từ đầu, thân phận của Brittney Griner đã là tình huống con tin Mỹ độc nhất trong lịch sử hiện đại.

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa. Từ Hollywood đến New York và mọi nơi ở giữa, hãy xem các ngôi sao yêu thích của bạn đang làm gì!

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

Các nhà điều tra đang xem xét liệu nhóm và nghi phạm có biết nhau trước vụ tấn công hay không

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Vụ kiện, nêu tên một số học khu, lập luận rằng dự luật "Không nói đồng tính" được ban hành gần đây của Florida "có hiệu quả im lặng và xóa bỏ học sinh và gia đình LGBTQ +"

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Vào năm 2021, tôi khuyến khích bạn suy nghĩ lại mọi thứ bạn biết về khách hàng mà bạn phục vụ và những câu chuyện bạn kể cho họ. Lùi lại.

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Vào ngày sinh nhật thứ 9 của Felix The Cat, tôi nhớ về một trong những mất mát lớn nhất trong cuộc đời trưởng thành của tôi - Sophie của tôi vào năm 2013. Tôi đã viết bài luận này và chia sẻ nó trên nền tảng này một thời gian ngắn vào năm 2013.

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Tôi ghét từ "tàu đắm". Mọi người cảm thấy thoải mái trong la bàn đạo đức của riêng mình, và khi làm như vậy, họ thấy mình vượt qua sự phán xét.

Tầm nhìn đám mây phi tập trung của DFINITY Blockchain

Lưu ý của người biên tập: Bạn đang xem tài liệu lỗi thời từ blog DFINITY đang được bảo quản cho mục đích lưu trữ.

Tầm nhìn đám mây phi tập trung của DFINITY Blockchain

Bài đăng này khám phá tầm nhìn về đám mây phi tập trung của nhóm DFINITY và cách nó liên quan đến các nhà cung cấp blockchain truyền thống và đám mây hiện có như Amazon Web Services. Các minh chứng về công nghệ DFINITY được áp dụng bởi một mạng lưới quy mô lớn sẽ được thực hiện vào mùa thu năm 2017, sau đó sẽ được gây quỹ Chính cho quỹ hỗ trợ phi lợi nhuận, với mạng “đám mây mở” dự kiến ​​sẽ ra mắt vào đầu mùa hè năm 2018 .

Language