본문으로 건너뛰기
  1. Posts/

리눅스 스크립트 프로그래밍 시작하기

·
Linux Shell
작성자
hw5e
page.hw5e.cc
목차

스크립트의 정확한 정의가 어떤지는 잘 모르겠지만 보통 인터프리터 언어에서 실행할 내용들을 파일 하나에 모아둔 것을 스크립트라고 부른다. 보통 운영체제의 셸 스크립트(일반적으로 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