Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>
변수

5. 변수

다른 프로그래밍 언어를 사용할 때와 마찬가지로, 셸 프로그래밍을 할 때도 변수를 사용할 수 있다. 게다가 bash에서는 데이터 타입을 미리 정할 필요 없이, 숫자나 문자, 혹은 문자열을 지정할 수 있다.

어떤 변수가 처음 사용되는 순간 참조가 생성되므로, 변수를 따로 선언할 필요는 없다.

5.1. 예제 : 변수를 사용한 Hello World! 출력

 
#!/bin/bash 
STR="Hello World!" 
echo $STR 

2번째 줄에서 STR이라는 이름의 변수가 생성되며 "Hello World!"를 받았다. 이 변수에 들어있는 값을 사용하기 위해서는 '$'를 변수 이름 앞에 사용하여 이것이 변수라는 사실을 알려 주어야 한다. 변수 이름 앞에 '$'를 빼놓았을 경우에는 예상했던 것과는 다른 결과가 나올 것이다. 예컨대, 이런 경우 셸은 이 변수 자체를 문자열로 인식해 버리거나 하기 때문에 주의해야 한다.

5.2. 예제 : 여전히 간단한 백업 스크립트

 
#!/bin/bash 
OF=/var/my-backup-$(date +%Y%m%d).tgz 
tar -cZf $OF /home/me/ 

이 스크립트는 앞서 살펴본 것과는 질적으로 다른 물건이다. 일단 이것은 생성 날짜가 파일 이름이 되기 때문에 파일명이 중복되지 않아, 백업하기 용이하다. 두 번째 줄의 '$(date +%Y%m%d)'가 바로 그 부분이다. 매일 파일 이름이 달라진다는 것을 알 수 있다. date는 원하는 대로 옵션을 조절하여 다른 포맷으로 출력할 수도 있으니 확인해 보자. 또한 이 스크립트를 실행하면 명령 실행 과정이 화면에 그대로 출력된다는 점도 참고해 두자.

참고할 만한 것을 좀 보자. 다음 내용을 각각 직접 실행해 보자.

 
echo ls 
echo $(ls) 

무엇이 다른지 확인하고, 왜 다른지도 알아보자.

5.3. 지역 변수

지역 변수는 local이라는 키워드를 사용하여 생성된다.

 
#!/bin/bash 
HELLO=Hello 
function hello { 
local HELLO=World 
echo $HELLO 
} 
echo $HELLO 
hello 
echo $HELLO 

이 예제는 지역 변수를 사용하는 방법에 대한 것이다. 이미 프로그래밍 언어를 조금이라도 다루어 보았다면 이런 방식의 코드를 본 적이 있을 것이다. 여기에서는 함수를 호출하는 방법에도 주의하자.