본문 바로가기

Linux

Shell Script란?

쉘스크립트란?

script : 영화나 방송의 대본, 각본

스크립트란 이미 짜여진 각본이라고 할 수 있다. 어떤 일을 할 것인지, 미리 결정해서 순서대로 나열한 문서 라고 할 수 있다.


우리는 특정 상황에서 동일한 행동을 하는 경우가 많다.
라면을 먹고싶을 때를 예로 들어본다면

1. 냄비를 가져온다
2. 냄비에 물을 받는다.
3. 냄비를 불위에 올린다.
4. 물이 끓으면 면과 스프를 넣는다.
5. 불을 끄고 식탁으로 가져간다.
6. 먹는다.

물론 사람마다 순서가 조금 다를 수는 있다. 하지만 이렇게 라면을 끓여 먹는 것에 익숙해져있다면 다음번에 라면을 끓여먹을때도 같은 순서의 행동을 할 것이다.


마찬가지로 리눅스 환경에서도 일련의 작업 순서를 반복하는 경우가 있다. 그 때 사용할 명령어들을 묶어서 한 곳에 작성해두고 (스크립트) 이 스크립트만 실행하도록 한다면 번거로운 작업 절차를 겪지않아도 된다. 스크립트를 실행하면 이미 짜둔 각본대로 작업을 진행해주기 때문이다.

쉘 스크립트란, 쉘에서 실행할 명령어를 일련의 순서로 기록한 문서다.

처음 쉘 스크립트라는 것을 접했을 때, 익숙지 않은 표현들과 난해한 가독성 때문에 도대체 이 것은 어떻게 짜야하며 원래 이렇게 난해하게 생겨먹은 것인가 라는 착각이 들었다.


배포과정 자동화를 위해 초보적인 스크립트를 작성해봤는데, 리눅스 명령어만 적어도 무리 없이 돌아간다는 것이었다.

분기가 없고, 동적으로 값을 받아올 필요가 없다면 이러한 초보적인 스크립트도 작성할 수 있다. 


아래는 톰캣의 로그를 트래킹하는 아주 간단한 스크립트이다.

#! /bin/bash

cd /home/deploy/apache-tomcat-8.5.35/logs
tail -f catalina.out
 

로그를 확인하기 위해서 들어왔다면, 디렉터리를 이동해서, 파일을 트래킹할 것이다.

이렇게 정해진 순서의 명령어를 모으면 그게 곳 스크립트이다! 복잡하게 생각하지 말자.

그렇다면 쉘 스크립트는 왜 복잡하게 생겼을까?

  • 상황이 복잡하기 때문이다.

단순하게 정해진 명령어만 수행하면 된다면, 스크립트는 단순할 것이다. 하지만 분기가 필요하고, 사용자 입력 혹은 네트워크 사용등의 요구사항이 늘어날 수록 스크립트에는 특수한 기능들이 들어갈 수 밖에 없다. 프로그래밍 언어를 처음 배울 때와 마찬가지이다. 배우고 나면 별 것 아니게 된다.

스크립트도 언어로 작성된다. 별도의 언어를 배운다고 생각하면 된다. 스크립트 언어로 다양한 상황을 어떻게 풀어나갈 수 있는지 차근차근 배워보자.


'Linux' 카테고리의 다른 글

Init 프로세스  (0) 2019.06.19
데몬(Daemon)이란?  (0) 2019.06.19
Bash 기본 잡기  (0) 2018.12.16