셸 스크립트 작성

원하는 파일을 생성  ( 파일명.sh)   

 ✓ ".sh" 는 쉘 스크립트라는 것을 알 수있도록 확장자 지정한 것

#!/bin/bash
echo "Hello"
ls -a

      - #!/bin/bash  :  셔뱅(shebang)은 #!

  • 셔뱅 :  셸 스크립트 파일을 작성할때  최상단에 작성하는 문구 중 #!  
    • 파일의 최상단에 위치
    • 그담에 오는 명령어로 해당 쉘 스크립트를 무엇으로 실행할 것인지 명시하는 역할
    • #!/bin/bash → bash 로 해당 쉘 스크립트를 실행

실행 권한 부여

$ chmod +x shellScript.sh

 

실행

# 3가지 방법 다 동일하게 작동
$ ./shellScript.sh
$ bash ./shellScript.sh 
$ source ./shellScript.sh

✓  두번째와 세번째 실행 방식은 파일에 셔뱅으로 bash 를 지정 안해도 실행 가능

 

실행 방법에 의한 차이

파일 이름만으로 실행

 셔뱅에 무엇을 이용하여 파일을 실행할 것인지 명시 필요

셸의 인자로 지정하여 실행

 이미 bash 로 실행하겠다고 지정하여서 shebang에 지정을 안해도 실행가능

source 명령어를 이용한 실행

 위 두가지 방식과 동작방식 상의 차이점 존재

→ 현재 설정된 shell 을 기준으로 파일에 기재된 커맨드 라인이 실행

현재 shell 에 설정된 환경에 영향을 받음 : 설정된 별명을 스크립트 안에서 사용가능

 현재 shell 환경에 영향을 줌 : 별명을 설정가능, 터미널이 재실행되면 설정된 별명 존재 안함

 

※ 예시

test.sh 

"""""""

#!/bin/bash

alias lsalf='ls-alF'

"""""""

$ lsaf
명령을 찾을 수 없습니다.
$ source ./test.sh
$ lsaf
실행된 결과 출력

 

    >> 터미널을 재 시작하고 lsaf 를  쳐보면 별명이 설정 안되어 있다는것을 확인 가능

 

shell script 배치용 디렉터리

셸 스크립트를 cat  이나 ls 처럼 이름 만으로 실행가능한 방법

 

1. 셸 스크립트를 ~/bin 으로 이동

$ mkdir ~/bin
$ mv homesize.sh ~/bin

 

2.  vim 으로 ~/.profile 에 내용추가

$ vim ~/.profile
....
....
PATH = "$PATH: ~bin"
...

 

3. 재시작후 source 명령어 실행하여 검색 경로에 추가

$ source ~/.profile

 

▶▶▶  어디에서든지  파일명으로 실행가능

 

 

 

+ Recent posts