본문 바로가기
DevOps/Linux

[Linux] shell script 주석과 Shebang사용법

by 마이자몽 🌻♚ 2021. 3. 16.

shell script 주석

shell script에서 주석은 "#"을 사용해서 표시합니다.

그런데 혹시 shell script나 다른 프로그래밍 언어에서 파일의 가장 첫번째 줄에 표기된 "#"을 보신적 있나요? 것을 바로 Shebang이라고 합니다.

 

Shebang이란?

혹시 스크립트상에 이런 주석을 보신적 있으신가요? shell script를 다뤄보셨다면 아마 한번쯤 보셨을 거에요. 이게 어떤 기능을 하는지 아시는 분도 계실거고 모르시는 분도 계실거고... 그냥 사용한 분들도 계실거라 생각합니다.

 

"#!" 이 샵과 느낌표를 붙여 가장 첫번째 줄에 사용하게되면 이것을 shebang이라고 합니다. 이는 어떤 프로그램으로 파일을 실행할지 정의해줄 수 있는 것입니다. Bash shell, Python, PHP 등 다른 인터프리터를 사용하는 것이고 만약 사용하지 않는다면 기본 shell로 실행이 됩니다.

 

$ echo $0
-bash
$ which bash
/usr/bin/bash

"$0"를 echo해서 확안하면 기본 shell을 확인할 수 있습니다. which로 경로를 확인해보면 "/usr/bin/bash"가 기본 shell로 사용되는 것을 확인할 수 있습니다.

 

test.sh

#! /usr/bin/bash
echo hi

"hi"라는 문구를 출력하기 위해 shell파일을 만들어 보겠습니다.

실행해보면 이상 없이 출력되는 것을 확인해볼 수 있습니다.

다음은 shebang에 대한 내용을 변경해서 실행해보겠습니다.

 

test.sh

#! /usr/bin/python3
echo hi

만약 shebang을 파이썬 인터프리터를 사용하도록 한다면?

 

$ ./test.sh 
  File "./test.sh", line 2
    echo "hi"
            ^
SyntaxError: invalid syntax

역시나 오류가 발생합니다. 이는 shell script가 아닌 파이썬으로 파일을 실행하는 하기 때문에 오류가 발생하는 것입니다.

 

이처름 Shebang을 알고 사용해야 파일에 대한 의도를 명확히 할 수 있고 실행할 수 있습니다.

 

[Linux] 리눅스 책 추천 개발자부터 비개발자까지~

리눅스 책 추천 1. 디버깅을 통해 배우는 리눅스 커널의 구조와 원리1,2 디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 1:라즈베리 파이로 따라하면서 쉽게 이해할 COUPANG www.coupang.com 디버깅을

myjamong.tistory.com

 

태그

, ,

댓글0