Raspberry Pi_Kor_20.2.1 Shell과 script


Published Book on Amazon


All of IOT

Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 1

All of IOT

Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 2


출판된 한글판 도서


최신 라즈베리파이(Raspberry Pi)로 시작하는 사

물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (상)

최신 라즈베리파이(Raspberry Pi)로 시작하는 사

물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (하)


Original Book Contents


20.2   script를 통한 명령 일괄 실행

 

여기서는 여러 개의 명령을 한번에 일괄 처리하기 위해서 사용하는 script 도구에 대해서 살펴볼 것이다. script에 대한 개념과 script를 작성하는 방법, script를 실행하는 방법 등에 대해서 논의할 것이다.

 

20.2.1  Shell script

 

20.2.1.1    script ?

 

Linux 시스템에서는 Shell이 명령을 실행하는데 중심적인 역할을 하고 있는데, 여러 가지 Shell 프로그램 중에서 BASH가 기본적인 Shell로 지정되어 있다. BASH Terminal 환경에서 사용자가 입력한 명령을 받아서 그 명령의 의미를 해석하고, 지정된 방식에 따라 명령을 처리한 다음, 처리 결과를 사용자에게 되돌려 준다.

 

그런데 Shell은 이렇게 Terminal 환경에서 사용자가 입력한 명령을 단순히 처리해주는 기능뿐만 아니라 C Java와 같은 일반적인 프로그래밍 언어처럼 일정한 규칙에 따라 처리를 할 수 있는 program을 작성해서 실행할 수 있는 기능을 제공하고 있다. Shell에서 작성된 프로그램을 이용하면 여러 가지 자료를 읽어서 다양한 논리를 적용하여 원하는 연산과 명령을 실행하고, 처리 결과를 다양한 형식으로 출력할 수 있는 기능을 수행할 수 있다.

 

이러한 프로그래밍 기능을 제공하는 도구가 script이다. script Shell 명령과 Shell이 제공하는 각종 연산규칙을 이용해서 작성된 프로그램이다.

 

script java script처럼 프로그램이 실행되는 시점에 해당 명령이 컴퓨터 언어로 변환되어 실행된다. script로 작성된 명령은 실행되는 시점에 비로소 Shell에게 전달되어 의미가 해석되고, Shell에 의해서 실행되며, 그 결과도 Shell을 통해서 처리된다. Shell script에 대해서 Interpreter의 역할을 하는 것이다.       

 


 

20.2.1.2    script에서 사용할 수 있는 명령

 

script에서는 일반적인 Shell 명령은 모두 사용할 수 있다. 여러 개의 명령을 입력하여 순차적으로 한꺼번에 실행할 수도 있다. 기본적으로 Terminal 환경에서 명령을 실행하는 것과 차이가 없다

 

하지만 일반적인 Shell 명령만 이용해서는 단순히 명령을 순서적으로 나열하는 것 이외에 복잡한 처리를 할 수 없다. script가 일반적인 프로그램처럼 다양한 작업을 처리하기 위해서는 일반적인 Shell 명령 이외에 별도의 도구가 필요하다. 그래서 Shell script에서 사용할 수 있는 복잡한 논리연산과 자료 조작을 할 수 있는 다양한 프로그램 도구를 제공해 주고 있다.

 

 

20.2.1.3    script 특징

 

script는 기본적으로 텍스트 파일 형식으로 작성되는 파일이다. 모든 텍스트 편집기를 이용해서 자료를 작성할 수 있다.

 

script 파일 이름은 통상 xxxx.sh 와 같은 확장자를 갖는 파일 이름을 가지고 있지만 꼭 그래야 할 필요는 없다. 확장자가 없는 파일 이름으로 저장되어도 실행에는 아무 지장이 없다.

 

script는 일반 Shell 명령처럼 실행될 수 있는 하나의 프로그램이다. script 파일이 자체적으로 실행되려면 script 파일에 실행(execute) 권한이 부여되어 있어야 한다.


 

Leave a Reply