스크립트의 정확한 정의가 어떤지는 잘 모르겠지만 보통 인터프리터 언어에서 실행할 내용들을 파일 하나에 모아둔 것을 스크립트라고 부른다. 보통 운영체제의 셸 스크립트(일반적으로 bash)를 말하는 경우가 많지만 다른 인터프리터 언어의 스크립트도 상관 없다.
리눅스에서 스크립트를 잘 활용하면 반복적인 작업을 효율적으로 할 수 있다.
스크립트의 실행 #
두가지 방법이 있다.
스크립트를 인수로 전달해서 실행하기 #
인터프리터의 인수로 파일을 넣으면 그 파일에 있는 내용을 한줄씩 실행한다.
bash 파일 이름
python 파일 이름
node 파일 이름
스크립트 파일을 직접 실행하기 #
스크립트 파일을 실행 가능한 파일로 만들려면 스크립트의 첫 줄에 어떤 인터프리터를 쓸지 적어야한다.
유닉스 계열의 운영체제에서는 첫 줄에 #!를 적고 그 뒤에 인터프리터의 절대 경로를 적어야 한다.
bash 스크립트 파일이고 bash가 /bin 디렉토리가 있다면 파일 첫 줄에 #!/bin/bash를 적으면 된다.
이것을 shebang이라고 하는데 자세하게 알고싶다면 따로 검색해보자. #!과 경로 사이에는 공백 1개가 있어도 되고 없어도 된다. #과!의 순서를 외우는 방법은 대부분의 인터프리터 언어에서 #으로 시작하는 것은 주석 처리되니 인터프리터가 무시하게 #로 시작한다고 외우면 된다.
그런데 인터프리터가 어디에 있는지는 컴퓨터마다 다를 수가 있다 예를들면 운영체제에 따라 bash가 /bin 디렉토리에 없다든지 할 수도 있다. 그럴 때를 대비해 환경변수로 인터프리터를 찾게 하는 방법이 있다. #!/usr/bin/env 인터프리터_이름 식으로 쓰면 환경변수로 찾는다고 한다. 만약 인터프리터가 어디에 있는지 확실치 않다면 환경변수를 사용하면 된다.
예를 들어 환경변수로 파이썬을 찾으려면 #! /usr/bin/env python 이 될 것이다.
그런데 스트립트 파일을 텍스트 에디터로 만들면 보통 실행 권한이 없어서 실행할 수 없다. 그래서 실행 권한을 따로 줘야 실행할 수 있다. chmod u+x 는 파일의 사용자(User)에게 실행(eXecute)권한을 추가하라는 의미이다.
chmod u+x 파일_이름
셸에 파일이름을 입력하면 실행되는데 현재 디렉토리의 파일이라도 ./를 생략하지 않고 붙여야 실행된다.
./파일_이름
직접 해보기 #
script.py 파일을 다음과 같이 작성
#! /usr/bin/env python
print("First Line!")
print("2nd Line!")
실행하려면
python script.py
또는
chmod u+x script.py
./script.py
Reply by Email