다음 bash 문자열이 있고 "Hello" 문자열 앞에 줄 바꿈을 추가해야 합니다.
bash -c "echo 'Hello' > /location/file"
\n
큰 따옴표 앞, 큰 따옴표 내, 다른 이스케이프 변형을 사용하여 다른 구문 변형을 사용하여 추가해 보았습니다 .
"Hello" 문자열 앞에 개행 문자를 추가하여 두 번째 줄에 나타나도록 하려면 어떻게 해야 합니까?
답변1
여기에는 (적어도) 세 가지 옵션이 있습니다.
- 리터럴 줄바꿈을 사용하세요.
bash -c "echo '
Hello' > /location/file"
- 명령 자체의 일부로 백슬래시 이스케이프 문자를 확장하는 사용
printf
(또는 비표준 )(둘 다 쉘 내장):echo -e
bash -c "printf '\n%s\n' Hello > /location/file"
$'
백슬래시 이스케이프 문자를 쉘의 일부로 확장하는 bash의 비표준 인용을 사용하십시오 .
bash -c "echo $'\nHello' > /location/file
답변2
당신은 그것을 사용할 수 있습니다 $'\n'
:
$ bash -c "echo $'\nHello'" >somefile
Bash 매뉴얼에서는 다음과 같이 언급합니다.
이 형태의 단어는
$'string'
특별히 처리됩니다. 단어는 ANSI C 표준에 지정된 대로 대체된 백슬래시 이스케이프 문자를 사용하여 문자열로 확장됩니다. 백슬래시 이스케이프 시퀀스가 있는 경우 다음과 같이 디코딩됩니다.
(표준 이스케이프 시퀀스 목록은 생략됨)
답변3
다음을 수행할 수 있습니다.
bash -c "echo $'\nHello'"