[bash] Bash의 에코 줄 바꿈 문자 리터럴 \ n

Bash에서 다음을 시도하십시오.

echo -e "hello\nworld"

그러나 개행은 인쇄하지 않습니다 \n. 줄 바꿈을 인쇄하려면 어떻게해야합니까?

우분투 11.04를 사용하고 있습니다.



답변

printf대신 사용할 수 있습니다 .

printf "hello\nworld\n"

printf보다 일관된 동작이 echo있습니다. 동작은 echo버전마다 크게 다릅니다.


답변

당신은 강타에 확실합니까? 네 가지 방법 모두 나를 위해 작동합니다.

echo -e "Hello\nworld"
echo -e 'Hello\nworld'
echo Hello$'\n'world
echo Hello ; echo world


답변

echo $'hello\nworld'

인쇄물

hello
world

$''문자열은 ANSI C Quoting을 사용 합니다 .

형식의 단어는 특별히 취급됩니다. ANSI C 표준에 지정된대로 백 슬래시 이스케이프 문자를 바꾸어 단어를 string으로 확장합니다 .$'string'


답변

당신은 항상 할 수 echo ""있습니다.

예 :

echo "Hello"
echo ""
echo "World"


답변

시험

echo -e "hello\nworld"
hello
world

nano에디터 에서 저를 위해 일했습니다 .

매뉴얼 페이지에서 :

-e 백 슬래시 이스케이프 해석 가능


답변

동료의 대본이 줄 바꿈을 인쇄하지 않는 이유를 알아 내려고 벽에서 머리를 두드리는 사람이 있다면 기회를 찾아보십시오.

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

echo $(GET_RECORDS);

위에서와 같이, 메소드의 실제 실행은 메소드 자체에있을 수있는 에코를 대체하는 에코로 랩핑 될 수 있습니다. 분명히 나는 ​​간결성을 위해 이것을 물을 뿌렸다. 발견하기 쉽지 않았다!

그런 다음 동료에게 기능을 실행하는 더 좋은 방법은 다음과 같다고 알릴 수 있습니다.

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

GET_RECORDS;


답변

이것은 Raspbian에서 저에게 효과적입니다.

echo -e "hello\\nworld"