본문 바로가기

Linux

[bash] 쉘스크립트로 출력하기 (echo, printf 명령어)

반응형

 

 

어떤 프로그램이든 시작은 "Hello world"를 화면에 출력하는 것으로 시작한다.

bash 쉘 스크립트로 "Hello world"를 화면에 띄우려면 어떻게 해야할까.

대표적으로 echo 명령어가 있다.

 

echo 

문자열이나 변수를 출력하는 명령어.

출력시 자동적으로 줄바꿈 처리를 해줌

 

 

문자열 출력하기

1
2
3
4
5
6
#!/bin/bash
 
echo "Hello world"
 
### 출력
Hello world
cs

 

 

 

변수 내용 출력하기

1
2
3
4
5
6
7
8
#!/bin/bash
 
name="lim"
org="dev"
echo name: ${name}, org: ${org}
 
###출력
name: lim, org: dev
cs

 

변수 name과 org에 값을 할당하고 echo로 찍은 예제이다. 

 

 

 

산술 연산 내용 출력하기

 

쉘명령어는 기본적으로 문자열 처리를 원칙으로 하기 때문에 아래와 같은 코드를 사용할 경우에 의도와는 다르게 동작할 수 이다.

 

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
 
num1=3
num2=5
echo $num1 + $num2
 
 
 
###출력
3 + 5
cs

 

만약 산술연산 결과인 8을 출력하고 싶었다면 let 명령어를 통해서 산술 연산을 수행해주어야 한다.

 

1
2
3
4
5
6
7
8
9
#!/bin/bash
 
num1=3
num2=5
let result=$num1+$num2
echo $result
 
###출력
8
cs

 

 

printf

bash 쉘에서는 echo 명령외에 printf 명령어도 지원한다. 

둘의 차이가 있다면 echo는 기본적으로 출력시 줄바꿈을 해주는데,

printf를 하지 않는다.

그 외에 printf는 다양한 형태의 자료형을 포애팅하여 출력해준다.

 

 

문자열 출력하기

1
2
3
4
5
6
7
8
#!/bin/bash
 
printf "Hello world"
printf "Bye"
 
 
### 출력 
Hello WorldBye
cs

줄바꿈을 지원하지 않기 때문에 두 문자열이 붙어서 출력된다.

 

 

 

변수 내용 출력하기

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
 
var1="Hello World"
var2="Bye"
printf "${var1}\n${var2}"
 
 
###출력 
Hello World
Bye
cs

 

 

 

포맷터 사용하기

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
 
name="lim"
open=3
close=5
 
printf "%s's Open issues: %s\nClosed issues: %s\n" ${name} ${open} ${close}
 
 
### 출력
sun's Open issues: 3
Closed issues: 5
cs

 

 

 

 

 

 

 

 

반응형