ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #!/usr/bin/env bash 이란?
    linux/script 2023. 10. 19. 11:11

    필자는 docker 관련 수업을 들으며, script를 실행하여 docker를 설치하였다.

     

    여태 개발하면서, shell script를 작성을 시작할 때는 주로 #!/bin/sh만 사용했다.

     

    #!/bin/sh의 의미란 시스템에 지금부터 셸 스크립트를 쓴다는 사실을 알려주는 것이다.

     

    (이번에 알게된, # = hash, ! =bang 이므로 #! = shebang 이라고 부른다. 그리고 #!바로 뒤에 나오는 것은 경로명으로, 명령어를 해석할 프로그램의 위치를 나타낸다!!

     

    예시로, hello.sh 파일을 작성한다. -> 기본적으로 .sh 를 확장자로 사용함!

     

    #!/bin/sh
    echo "Hello, suyeon"

     

    이 파일을 실행하기 위해서는 터미널에서 파일이 저장된 위치에서 명령어를 입력한다.

     

    chmod 755 hello.sh (chmod 755 u+x hello.sh)

     

    sh hello.sh
    bash hello.sh

    위의 3가지 방법 중 하나를 실행하면 된다!

     

    실행하고 나면 Hello, suyeon 이 찍혀 나오는 것을 볼 수 있다. 

     

    그렇다면, #!/usr/bin/env bash 이란?

     

    위에서 말했듯이, #!+경로 인데, 시스템에 따라 /bin/local/python 혹은 /usr/bin/python 에  위치할 수 있고, 버전이 다를 경우도 있다! 

     

    이런 경우를 대비해서, #!/usr/bin/env로 설정하면 절대 경로와 상관 없이 스크립트의 위치를 찾아서 실행한다!

    혹시나, 이런 저런 환경에서 실행되어야 할 스크립트라면 #!/usr/bin/env 를 사용하는 것이 좋다!

     

    예시) prepare.sh 을 작성

    #!/usr/bin/env bash
    
    echo "Prepare for test"

     

    위 처럼 권한을 추가한다. 

     

    chmod u+x prepare.sh

    그리고 실행 ! 

     

    ./prepare.sh

    하면, Prepare for test 가 출력되는 것을 볼 수 있다! 

     

    'linux > script' 카테고리의 다른 글

    CentOS7에 service로 등록하기  (1) 2024.01.10
    shell script 사용해서 ubuntu에 docker 설치하기  (1) 2023.10.19
Designed by Tistory.