본문 바로가기
목차
shell

echo 와 printf

by ds31x 2026. 1. 12.
728x90
반응형

echo

echo문자열이나 변수 값을 표준 출력(stdout)에 그대로 출력하는 shell built-in 명령어.

입력한 말을그대로 다시 돌려주는 명령
이라는 점에서
이름이 echo(메아리)임.

 

다음과 같이 문자열 또는 환경변수의 값을 알아보는데 사용됨.

echo "Hello"
echo $PATH

자주 쓰는 옵션:

  • -n : 줄바꿈 없이 출력
  • echo -n "Hello"
  • -e : escape sequence 해석 (\n, \t, \a 등) 켜기
    • 주의할 점은 bash에서 기본적으로 disable 상태이나 zsh에서 enable 상태임.
    • 해석 기능을 끄려면 -E로 disable 시키면 됨.
    echo -e "A\nB"

echo는 script나 터미널에서 메시지 출력, 변수 확인, 파이프·리다이렉션과 결합한 데이터 전달에 가장 많이 사용됨.

 

shell expansion의 결과를 확인하는데 가장 유용한 도구 중 하나임.

인코딩은 주로 utf-8을 사용하는게 사실상 표준이 되어 특별히 신경쓰지 않아도 된다,
단, Windows에서 사용할 경우 utf-16le, ms949 등이 혼재되어 한글이 깨지기도 함.

 

인코딩 관련해서 처리가 필요하면 iconv를 사용해볼 것을 권함:


printf

printf는 C 언어의 printf() 함수와 동일한 format string(형식문자열) 모델을 사용하는 출력 명령어임.

  • format string을 통해 숫자, 문자열, 정렬, 소수점, 진법 등을 지정할 수 있음
  • POSIX 표준이라 정확하고 이식성 있는 출력을 가능하게 함.

다음의 예를 참고할 것.

printf "Hello\n"
printf "PI = %.2f\n" 3.14159

fomat string

format stringprintf에서 format specifier(형식문자)를 포함한 출력 템플릿 문자열 임.

다음의 예를 들어 설명한다.

printf "x=%d, y=%.2f, name=%s, hex=%x\n" 3 1.234 Kim 255
  • %d, %.2f, %s, %x 같은 format specifier
  • 각 값의 자료형과 출력 방식을 결정함,
  • 이들을 포함한 "x=%d, y=%.2f, name=%s, hex=%x\n" 전체가 format string 임.

대표적인 format specifier는 다음과 같음:

  • %s → 문자열
  • %d → 10진수 정수
  • %f → 실수
  • %.nf → 소수점 n자리 실수
  • %x → 16진수
  • %o → 8진수
  • %c → 문자 1개
  • %e → 지수 표기 실수
  • %%% 문자 자체 출력

Python 등에서도 old style로 문자열 출력시 format string model을 사용함: percent formatting이라고 불림.


echo vs. printf

구분 echo printf
목적 간단한 문자열 출력 형식(format) 기반 출력
줄바꿈 기본적으로 자동 추가 자동으로 안 붙음
escape 처리 셸·구현마다 다름 (-e) C printf와 동일
이식성 셸마다 동작 차이 있음 POSIX 표준, 동작이 안정적
숫자·서식 불가능 %d, %f, %s 등 지원

 

예제:

echo "x = 3.14"
printf "x = %.2f\n" 3.14159

 

간단히 정리하면,

echo빠르게 찍어보는 용도,
printf정확한 형식과 스크립트 안정성이 필요한 경우에 사용을 권장.


같이 보면 좋은 자료들

2023.10.02 - [Linux] - [Bash] 입출력 목적지 변경하기 : Redirection Operation

 

[Bash] 입출력 목적지 변경하기 : Redirection Operation

stdout (표준출력, 1), sdtin(표준입력, 0), stderr(표준에러, 2)을 redirection하는 방법에 대한 문서서버에서 백그라운드로 명령어 수행시 출력이나 error 메시지 등을 stdout이 아닌 file에 남길 때 유용.redirec

ds31x.tistory.com


2023.10.02 - [분류 전체보기] - Shell 과 CLI 명령어 요약 정리

 

Shell 과 CLI 명령어 요약 정리

Shell 이란?https://dsaint31.me/mkdocs_site/OS/console_terminal_shell_kernel/?h=shell#shell BMEConsole, Terminal, and Shell Console: 컴퓨터(주로 서버)에 command를 작성하여 입력하고 그 결과를 확인할 수 있는 (물리적) 입출력

ds31x.tistory.com


 

728x90