[Linux] bash script에서 개행 문자를 사용하는 방법

이예서·2023년 4월 8일
0

실행 환경: Ubuntu 22.04.2 LTS

개행문자를 출력하는 방법

간단한 개행문자가 들어가는 변수를 선언하고 출력해 보겠다.

var="hello\nworld"
echo $var
hello\nworld

\n을 문자 그대로 출력하는게 아닌 개행 문자로 사용하고 싶을 때, 아래 몇 가지 해결 방법이 존재한다.

case 1.
printf 명령어 사용

var="hello\nworld"
printf "$var\n"

case 2.
echo -e 명령어 사용

var="hello\nworld"
echo -e $var

case 1,2 둘 다 아래와 같이 출력된다.

hello
world

개행문자를 변수에 저장하는 방법

위 예제처럼 단순히 변수를 출력하는 경우가 아닌 변수에 개행문자를 담아서 파라미터로 전달해야 하는 경우가 필요할 수도 있다. 그럴 땐 아래와 같이 사용할 수 있다.

var=hello$'\n'world
echo "$var"
hello
world

참고: ANSI-C Quoting 에서 관련 내용을 확인할 수 있다.

curl 명령어로 텍스트 전송 시 텍스트 내 개행문자 사라짐

(약간 주제에서 벗어날 수 있으나, bash script에서 curl 명령어를 자주 사용하고, 같은 개행 문자 관련 이슈이기에 추가하였다)
--data-binary 옵션을 사용하면 된다.

ex) 텍스트 파일을 특정 스토리지 버킷에 업로드 요청을 보낼 때

curl -s -X PUT -H \
"Content-Type: $ContentType" \
-H "Authorization: $Authorization" \
--data-binary "@$LocalFile" $BUCKET$Path

아래 스택오버플로우 글을 참고하여 해결하였다.
How to send line break with curl?

profile
데이터 분석을 전공하는 백엔드 엔지니어

0개의 댓글