티스토리 뷰
쉘 스크립트(shell script)의 시작#!의 뜻
유닉스에서 쉘 스크립트(shell script)의 시작은 #!/bin 으로 시작되고 그 다음에 이 스크립트를 실행할 인터프리터와 그 실행 옵션이 따라오게 됩니다. 따라서 첫 라인은 #!/bin/bash나 #!/bin/tcsh 등과 같이 표기됩니다. 오늘은 그 중 #!의 뜻을 좀더 살펴보고자 합니다.
스크립트의 첫 두글자가 순서대로 숫자기호(#)와 느낌표(!)가 오면 이를 Shebang이라 부릅니다. #!bin/sh, #!/bin/csh, #!/usr/bin/php 등과 같은 사용을 shebang line이라 부르죠.(참조 - http://en.wikipedia.org/wiki/Shebang_(Unix))
발췌 : 위키피디아
이 Shebang Line은 shebang 라인 이후 명령들을 어떻게 해석 할 것인지를 지정해 주는것입니다. 파이썬(python), 루비(Ruby), Bash(본쉘 스크립트) 등으로 말이죠.
구문 (Syntax)
#!interpreter [optional-arg] 과 같은 형식으로 사용합니다. 다음의 예를 보도록 하죠.
#!/bin/sh
#!/bin/csh -f
#!/usr/bin/perl -T
#!/usr/bin/php
#!/usr/bin/python -O
#!/usr/bin/ruby
그런데 파이썬 같은 경우 사용자에 따라서/usr/bin/python, /usr/local/bin/python 또는/home/username/bin/python 처럼 다양하게 쓰이는데 그럴때 마다 절대경로의 shebang line을 기술하면 매번 변경해야 하니 귀찮아 지겠죠. 그럴 경우 /usr/bin/env가 이런shebang의 절대경로 제약사항을 우회하는데 사용됩니다. env는 사용자의 $PATH(환경변수) 상에서 첫번째로 찾은 해당 명령을 실행합니다. 즉 #!/usr/bin/env python 이라 적어주면 환경변수 상에 기재된 파이썬 패스 중에서 가장 먼저오는 것을 실행하는거죠. 이제 환경에 따라서 매번 바꿔줘야 하는 수고는 없어지게 되었네요~ ^^
정리
유닉스 스크립트 첫 라인에 오는 #!은 Shebang이라 부르고 해당 라인을 shebang line이라 부른다. shebang line은 이후 부터 스크립트가 어떻게 해석될지를 지정한다. 또한 절대경로를 사용하는 shebang의 제약을 우회하기 위해 #!/usr/bin/env 명령을 사용한다.
'잉고래의 코딩' 카테고리의 다른 글
파이썬 class에 대한 간단 노트 (0) | 2013.04.10 |
---|---|
파이썬(python) 임포트(import) 사용에 대한 생각 (0) | 2013.04.09 |
파이썬(Python) 실행 스크립트 작성 예제 (0) | 2013.04.08 |
리눅스 makefile과 make의 이해 (0) | 2013.04.08 |
리눅스 파일 이동 명령어 mv로 이름 변경도 되는구나 (0) | 2013.04.07 |
- Total
- Today
- Yesterday
- 독후감
- 독서
- 파빌리온 X2
- 티스토리
- 블랙박스
- c언어
- 소니 캠코더
- 소니
- 아이나비 탭 xd9
- 캠코더
- HP Pavilion x2
- AXP35
- 아이나비 탭 XD11 Pro
- cc2530
- X1 DASH
- qxd1000a
- 소니 핸디캠
- SM5
- 팅크웨어
- 한빛미디어
- 블로그
- 아이나비 패드
- 아이나비 Tab XD9
- 박근혜
- 아이나비
- 서평
- Sony
- CSS
- 아이나비 태블릿
- 소니 AXP35
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |