■ 스크립트의 시작
보통 Unix나 Linux에서는 여러가지 스크립트를 만들어 사용합니다.
sh, bash, python, perl 등등 여러가지를 만들수가 있는데 이 스크립트를 만들때 공통적으로 사용되는게 있습니다.
맨 처음 첫줄은 '#!'로 시작을 합니다. 이것으로 시작을 하면서 이 스크립트가 어떤 스크립트인지 알려줍니다.
이런 방법을 shebang(쉬뱅)이라고 합니다. 어원은 유닉스 계열에서는 sharp(#) + bang(!) 합성어로 sha-bang 이라 합니다.
shebang이있는 텍스트 파일이 Unix와 유사한 운영 체제 에서 실행 가능한 것처럼 사용되는 경우 프로그램 로더 메커니즘은 파일의 나머지 첫 줄을 인터프리터 지시문 으로 구문 분석합니다 . 로더는 지정된 인터프리터 프로그램을 실행하고, 프로그램이 파일을 입력 데이터로 사용할 수 있도록 스크립트를 실행할 때 처음 사용된 경로를 인수로 전달합니다. 예를 들어, 스크립트가 path to script 경로로 이름이 지정되고 다음 줄로 시작하는 #!/bin/sh경우 프로그램 로더는 path/to/script를 전달 하여 프로그램 /bin/sh 를 실행하도록 지시합니다.
■ Shebang-ENV
스크립트를 작성할때 스크립트 언어에 따라 다음과 같이 첫줄을 지정합니다.
#!/bin/sh : Bourne 쉘 또는 / bin 디렉토리에 있다고 가정되는 호환 가능한 쉘
#!/bin/bash : Bash 셸을 사용하여 파일 실행
#!/usr/bin/python : 프로그램 검색 경로를 사용하여 Python 인터프리터로 실행
#!/usr/bin/perl : 펄 스크립트 수행
#!/usr/bin/php : php 스크립트 수행.
#!/bin/false– 아무 작업도하지 않고 0이 아닌 종료 상태를 반환하여 실패를 나타냅니다. .sh / bash, sourcecsh / tcsh 의 명령 또는 .profile, .cshrc 또는 .login 파일 과 같은 특정 컨텍스트에서 실행하기위한 스크립트 파일의 독립 실행 형 실행을 방지하는 데 사용 됩니다.
그러나 스크립트 수행 파일(sh , bash, python, perl, php등)이 저 위치에 있다는 보장을 할 수 없습니다. 이럴때 다음과 같이 하면 자동으로 스크립트 언어를 찾아 수행하게 됩니다.
그런데 프로그램의 경로는 시스템 환경에 따라 달라질 수 있습니다. 그때 사용하는 것이 "env" 입니다.
"#!/usr/bin/env + 언어" 식으로 입력하는 방법이 있습니다.
#!/usr/bin/env bash
#!/usr/bin/env python
#!/usr/bin/env perl
#!/usr/bin/env php
즉 env에서 실행 스크립트를 찾아서 자동으로 수행해 줍니다. 편리한 방법이라 할 수 있습니다.
■ env 명령어
터미널에서 env를 입력하고 엔터를 치면 현제 설정되어 있는 환경변수를 확인해 볼 수 있습니다.
그 환경변수를 수정하거나 설정하는 방법이 몇가지 있습니다.
# 환경 변수 정보 출력
shell > env
# 환경 변수 정보 변경
shell > env -i HOSTNAME=test.com
shell > env -i /bin/sh
# 환경 변수 정보 변경
shell > env -u HOSTNAME
# env 이용한 bash 실행하기
shell > /usr/bin/env bash --version
참고 URL :
'Operating System > Linux' 카테고리의 다른 글
[Linux] Port Forwarding - 포트 포워딩 (0) | 2024.08.15 |
---|---|
[Ubuntu] 우분투 의존성 패키지 한번에 다운로드 (0) | 2024.03.06 |
[Linux] CentOS, RHEL - EPEL (0) | 2020.09.15 |
[Linux] history - 이전 명령어 실행 방법 (0) | 2020.08.31 |
[Linux] grep, egrep, fgrep (0) | 2020.05.17 |