bash 문자열에 개행 문자를 추가하는 방법은 무엇입니까? [복사]

bash 문자열에 개행 문자를 추가하는 방법은 무엇입니까? [복사]

다음 bash 문자열이 있고 "Hello" 문자열 앞에 줄 바꿈을 추가해야 합니다.

bash -c "echo 'Hello' > /location/file"

\n큰 따옴표 앞, 큰 따옴표 내, 다른 이스케이프 변형을 사용하여 다른 구문 변형을 사용하여 추가해 보았습니다 .

"Hello" 문자열 앞에 개행 문자를 추가하여 두 번째 줄에 나타나도록 하려면 어떻게 해야 합니까?

답변1

여기에는 (적어도) 세 가지 옵션이 있습니다.

  1. 리터럴 줄바꿈을 사용하세요.
bash -c "echo '
Hello' > /location/file"
  1. 명령 자체의 일부로 백슬래시 이스케이프 문자를 확장하는 사용 printf(또는 비표준 )(둘 다 쉘 내장):echo -e
bash -c "printf '\n%s\n' Hello > /location/file"
  1. $'백슬래시 이스케이프 문자를 쉘의 일부로 확장하는 bash의 비표준 인용을 사용하십시오 .
bash -c "echo $'\nHello' > /location/file

답변2

당신은 그것을 사용할 수 있습니다 $'\n':

$ bash -c "echo $'\nHello'" >somefile

Bash 매뉴얼에서는 다음과 같이 언급합니다.

이 형태의 단어는 $'string'특별히 처리됩니다. 단어는 ANSI C 표준에 지정된 대로 대체된 백슬래시 이스케이프 문자를 사용하여 문자열로 확장됩니다. 백슬래시 이스케이프 시퀀스가 ​​있는 경우 다음과 같이 디코딩됩니다.

(표준 이스케이프 시퀀스 목록은 생략됨)

답변3

다음을 수행할 수 있습니다.

bash -c "echo $'\nHello'"

관련 정보