Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>
아주 간단한 스크립트!!

2. 아주 간단한 스크립트!!

이 하우투는 예제를 바탕으로 셸 스크립트 프로그래밍의 방법을 제시할 것이다.

먼저 이해하기 쉬운 간단한 스크립트를 사용하여 기본 문법을 알아보자.

2.1. hello world를 출력하는 스크립트

 
#!/bin/bash 
echo Hello World 

이 스크립트는 단지 두 줄로 되어 있을 뿐이지만, 스크립트로서 갖추어야 할 기본적인 요소는 갖추고 있다. 먼저 첫 번째 줄에서는 이 파일을 실행하기 위해 필요한 프로그램의 경로를 명기했다. 아마도 다들 알고 있겠지만, bash란 셸의 일종이며, /bin/bash는 이 셸의 실행 파일이 있는 경로이다. 셸은 명령어 해석기로 들어오는 명령을 해석하여 이것이 내부 명령어라면 바로 실행을, 외부 명령어라면 해당하는 실행 파일을 찾아 메모리에 필요한 부분을 적재한다. 이 부분이 없다면 다음에 오는 명령을 실행할 수는 없을 것이다.

두 번째 줄은 실제적인 명령을 내리는 부분이다. 여기에서는 'Hello World'라는 말을 터미널에 출력하라는 명령을 내렸다. 물론 다른 말로 바꾸어도 좋을 것이다.

여담! 우리의 리누스 토발즈 아저씨가 처음 만들었던 것도 화면에 문장을 출력하는 프로그램이었다. 아마 그 프로그램의 업버전은 'sarah is the best'라는 문장이었다나 뭐라나..... (사라는 리누스 아저씨의 동생 이름이다.)

만약에 ./hello.sh: Command not found. 와 같은 꼴을 보게 되었다면, 아마도 첫 번째 줄의 '#!/bin/bash'가 문제일 것이다. 'whereis bash'나 'finding bash' 명령을 내려 bash의 경로를 확인해 보자. 그리고 이 경로를 첫 번째 줄에 기입한다. (첨가!'which bash'도 쓸만할것이다. 엉뚱맞게 bash가 없는경우라면, 자신이 쓰고있는 셸을 써라. 하지만 bash를 설치하는걸 추천한다. bash는 매우 강력한 셸이다.)

2.2. 엄청나게 간단한 백업 스크립트

 
#!/bin/bash 
tar -cZf /var/my-backup.tgz /home/me/ 

이 스크립트는 터미널에 메시지를 출력하는 대신 사용자의 홈 디렉토리를 tar-ball형식으로 묶는다. 이 스크립트는 실제로 사용할 만한 것은 아니다. 먼저 사용자에 따라 경로를 일일히 조절해야 하며, 여러 사람이 사용하면 백업 파일이 서로 덮어 쓰게 되어 백업이 망가질 수도 있다. 이런 백업 스크립트를 실제로 사용할 만 하게 만들어 놓은 것이 뒷 부분에 나올 것이다. 이것은 그냥 예제일 뿐이니까, 한번 시험해 보고는 바로 삭제하는 것이 좋을 것이다.