셸 스크립트 만들기, 변수 선언

2. 셸 스크립트 기초 문법

셸 스크립트 역시 JavaScript와 Python과 같은 언어이기 때문에 셸 스크립트를 좀 더 효율적으로 사용하기 위해서는 스크립트 작성에 필요한 문법들을 알아야 한다.

1. 셸 스크립트 만들기

셸 스크립트를 실행하기 위해 우선 셸 스크립트를 만들어야 한다. 셸 스크립트는 자주 사용하는 에디터를 이용하여 만들면 된다. 그러나 셸 스크립트를 만들고, 셸 스크립트가 잘 실행되는지를 확인하기 위해서는 터미널을 이용하여 vi나 vim 에디터를 이용하여 만드는 것이 좋다.

셸 스크립트 만들기

  • 셸 스크립트 파일을 만들 때는 일반적으로 sh 확장자를 많이 사용한다. 따라서 다음과 같이 파일명 뒤에 sh 확장자를 붙여 vi 에디터를 통해 파일을 생성한다. 셸 스크립트를 만들 때는 시작 시 #!/bin/bash를 붙여 해다 파일이 셸 스크립트라는 것을 알려준다. 그리고 실행하고자 하는 명령어들을 입력하고 저장한 후 빠져나온다.
[ubuntu@localhost ~]$ vi myshell.sh
#!/bin/bash

echo "hello world"

:wq

셸 스크립트 실행 - sh 명령어 이용

  • 첫 번째 방법은 sh 명령어를 이용하여 실행하는 방법이다.
[ubuntu@localhost ~]$ sh myshell.sh
hello world

셸 스크립트 실행 - chmod 명령어 이용

  • 두 번째 방법은 생성한 셸 스크립트 파일에 실행 권한을 주고, 직접 셸 스크립트를 실행하는 방법이다. chmod 명령어를 이용하여 생성한 셸 스크립트 파일에 실행 권한(+x)를 주고, 셸 스크립트가 위치한 경로의 셸 스크립트 파일을 호출하면 다음과 같이 셸 스크립트가 실행된다.
[ubuntu@localhost ~]$ chmod +x myshell.sh
[ubuntu@localhost ~]$ ./myshell.sh
hello world

셸 스크립트 실행 - 또 다른 방법

  • 셸 스크립트는 위와 같이 파일로 생성하여 실행할 수도 있지만, 일반 다른 스크립트 언어와는 다르게 명령어와 함께 프롬프트에서도 바로 실행할 수도 있다.
[ubuntu@localhost ~]$ echo "hello world"
hello world
  • 그러나 셸 스크립트를 파일로 만들어 사용하는 이유는 계속해서 재사용할 수 있고 다른 셸 스크립트를 만들 때 참조할 수 있기 때문이다.

2. 변수 사용하기

애플리케이션을 개발하다 보면 특정 연산을 수행한 후 해당 결과를 이용하여 또 다른 연산을 할 경우가 상당히 많다. 셸 스크립트를 개발할 경우에도 마찬가지이다. 특정 명령어를 실행한 결과값을 이용하여 또 다른 명령어를 실행해야 할 경우가 종종 발생한다. 이런 경우 특정 연산의 결과나 특정 명령어의 실행 결과를 변수에 저장하고, 개발하면 훨씬 쉽게 개발할 수 있다.

1) 변수 선언

예제 1) 기본 변수 선언 - 문자열 출력하기

Language라는 변수를 선언하고 "Korean"이라는 값을 저장한다. 그리고, 해당 변수를 사용할 때는 다음과 같이 echo에서 "I can speak"라는 문자열과 함께 앞에서 선언한 변수를 $ 뒤에 입력하면 된다.

[ubuntu@localhost ~]$ vi myshell.sh
#!/bin/bash

language="Korean"

echo "I can speak $language"

앞에서 생성한 스크립트를 sh를 이용하여 다음과 같이 실행하면 "I can speak $language"가 출력되는 것이 아니라 language에 저장했던 "Korean"이 함께 출력되는 것을 확인할 수 있다.

[ubuntu@localhost ~]$ sh myshell.sh
I can speak Korean

예제 2) 기본 변수 선언 - 디렉터리 생성하기

이번에는 여러 개의 디렉터리를 생성하는 셸 스크립트를 변수를 사용하여 만들어 보자. 앞의 예제 1)과 같이 Language라는 변수를 선언하고 "Korean English Japan"이라는 문자열을 저장한다. 그리고, mkdir이라는 디렉터리를 생성하는 명령어 다음에 앞에서 선언한 변수 language를 $와 함께 입력한다.

[ubuntu@localhost ~]$ vi make_directory.sh
#!/bin/bash

language="Korea English Japan"

mkdir $language

앞에서 생성한 셸 스크립트를 sh를 이용하여 다음과 같이 실행한다. 그리고, ls -l 명령어를 이용하여 디렉터리가 생성되었는지 확인한다. 이렇게 셸 스크립트를 이용하여 3개의 디렉터리가 생성된 것을 확인할 수 있다.

[ubuntu@localhost ~]$ sh make_directory.sh
[ubuntu@localhost ~]$ ls -l
total 3
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 31 01:46 English
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 31 01:46 Japan
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 31 01:46 Korea

변수를 선언하고, 선언한 변수를 이용하여 문자열을 출력하고, 디렉터리를 만들어 보았다. 셸 스크립트에서 변수는 특별한 타입을 요구하지 않으므로, 쉽게 변수를 선언하고 사용할 수 있다.

참고

  • 처음 배우는 셸 스크립트

좋은 웹페이지 즐겨찾기