리눅스 노트정리

Shell Script 기초 프로그래밍과 실행

차케요 2018. 7. 2. 09:23

Shell Script 기초 프로그래밍과 실행

어제는 셸 스크립트의 '기본 개념'과 '환경 변수'들을 살펴봤었는데요. 오늘은 간단한 shell script 프로그램을 작성해보고 실행하는 과정을 정리해보려고 합니다.

 

셸(SHELL) 환경변수

 

리눅스의 셸 스크립트는 C언어와 많이 비슷해서 C를 해보신 분들은 쉽게 익힐 수 있다고 하네요. 저도 기본서 하나 보기는 했는데 기억이 잘...ㅎㅎ 그래도 다른 일반적인 언어들 처럼 변수, 반복문, 제어문 등을 사용한다니까 다시 시작하는 마음으로 공부를 해봅니다.

 

■ Shell Script 작성

먼저 다음과 같이 간단한 셸 스크립트를 작성해봅니다.

 

 

 

별거 없죠?

 

1. 일단 첫 번째 줄의 #!는 주석인데요. bash를 사용하겠다는 의미이고요. 반드시 넣어줘야 하는 녀석입니다.

 

2. echo는 화면에 출력하는 명령어인데 다른 언어들의 print 정도의 역할이겠네요. 여하튼 "이름:"과 "디렉토리:"를 화면에 출력하고 그 뒤쪽으로 각각의 환경 변수의 내용을 출력하도록 하고 있습니다.

 

3. 마지막의 [exit 0]은 정상 종료를 의미하는데요. 이 SHELL SCRIPT의 특징 중의 하나가 실행 중에 문제가 생겨도 무조건 성공했다는 메시지를 반환한다고 합니다. 그렇기 때문에 마지막에 이렇게 종료코드를 반환하게 해서 제대로 실행이 되고 정상 종료되었는지 확인하는 것이 좋다고 합니다.

 

■ Shell Script 실행

이제 작성한 녀석을 실행해볼 텐데요. 셸 스크립트를 실행하는 방법은 두 가지가 있습니다.

1. 그 첫 번째로는 [sh 스크립트파일] 명령어를 사용할 수 있는데 속성을 변경할 필요가 없이 바로 실행이 되는 장점이 있습니다. 해보죠.

 

 

▲ 그림처럼 [sh test.sh] 형식으로 실행을 하니 스크립트가 제대로 실행되는 걸 확인할 수 있습니다.

 

2. 두 번째 방법은 실행 가능하도록 속성을 변경해주고 [./스크립트파일] 명령어로 실행하는 방법인데요. 실행 가능하도록 속성을 변경하는 명령어는 [chmod +x 파일명] 입니다.

 

 

실행 명령 중 맨 앞에 있는 [.]은 현재 폴더를 의미하고 기본적으로 현재 디렉토리 (root)가 환경변수 PATH에 설정되어 있지 않기 때문에 이렇게 지정을 해줘야 하는 것입니다. 말이 나왔으니 앞에서 작성한 스크립트에 PATH 경로도 추가해서 확인해볼게요.

 

 

▲ PATH를 확인하기 위해서 환경변수를 출력해봅니다.

 

 

▲ 결과에서 확인할 수 있듯이 root 디렉토리는 PATH에 없죠? 일반적인 명령이나 SCRIPT를 실행하면 먼저 PATH에 설정된 디렉터리에서 파일을 찾기 때문에 root에 있는 파일은 실행하지 못하게 됩니다. 그렇기 때문에 앞에서 살펴본 것처럼 현재 폴더 [./]를 지정해줘야 하는 것이고요.

 

이제 실행 권한을 설정한 다음 스크립트 파일을 실행해보고 마무리하죠.

 

 

▲ 실행 권한을 주기 전에는 -rw-r--r-- 상태였다가 chmod +x test.sh 명령을 실행하니 rwx-xr-x로 바뀐 걸 확인할 수 있고요. 앞에서 정리한 대로 [./test.sh] 명령을 통해서 SHELL SCRIPT가 제대로 실행되는 걸 확인할 수 있습니다.

 

이렇게 해서 SHELL SCRIPT 기초 프로그램을 작성해보고 실행하는 방법 등에 대해서 알아봤습니다. 수고하셨어요.