본문 바로가기
IT/리눅스 이론

리눅스 쉘 스크립트 작동 원리 이해하기 - 현재쉘과 서브쉘

by 꾸꾸웍스 2022. 6. 10.
반응형

리눅스 쉘 스크립트 작동 원리 이해하기 - 현재쉘과 서브쉘


 

 

 

 

쉘 스크립트(shell script)란??

 

쉘 스크립트(shell script)에 쉘에 대한 설명, 쉘 스크립트 실행 파일 만들기에 대한 내용은 맨 아래 링크를 들어가시면 자세한 설명이 있으니 참고해주시면 됩니다.

 

쉘 스크립트(shell script)는 간단한 설명으로 쉘이 읽고 해석하여 실행할 수 있는 명령어들로 이루어진 텍스트 파일입니다.

 

예시)

#!/bin/bash

if [ $1 = "yes" ]
then
          echo "argument is apple"
else
           echo "argument is not apple"
fi

 

 

 

쉘 스크립트(shell script) 파일 작성

 

간단히 설명하면 리눅스 서버의 편집기를 사용하여 스크립트 파일(script file)을 작성합니다. 특별히 쉘 스크립트 첫 번째 라인은 스크립트를 실행할 shell을 지정해야 됩니다. 따라서 #!/bin/bash는 bash쉘을 선언하는 것이며 이후 명령어로 이루어진 내용을 작성합니다. 명령어는 출력 명령어 echo를 사용하여 Hello를 출력합니다. (예시 사진은 root 계정입니다)

 

$ vi runfile.sh

#!/bin/bash
echo "Hello"

 

 

 

 

쉘 스크립트(shell script) 실행 방법

 

서브 쉘에서 스크립트 실행

작성된 스크립트 파일(script file)을 chmod 명령어로 실행 권한을 부여한 후 실행합니다.

 

$ chmod 755 runfile.sh

$ ./runfile.sh

Hello

 

 

 

현재 쉘에서 스크립트 실행

작성된 스크립트 파일(script file)을 source 명령어로 실행합니다.

 

$ source runfile.sh

Hello

 

 

 

 

쉘 스크립트(shell script) 실행 방식

 

쉘 스크립트(shell script) 실행 방식은 현재 쉘에서 실행되는 방식서브 쉘에서 실행되는 방식이 있습니다. runfile.sh라는 스크립트 파일(script file) 안에 A라는 명령어와 B라는 명령어가 있다고 가정하에 서브쉘과 현재쉘의 작동 방식은 아래와 같습니다.

 

서브 쉘 스크립트 실행 방식

runfile.sh 스크립트 파일을 실행 가능 파일로 하여 직접 실행하는 경우. 현재 쉘에서 runfile.sh를 실행하고 서브 쉘에서 A와 B의 명령어를 실행합니다.

 

 

 

현재 쉘 스크립트 실행 방식

runfile.sh 스크립트 파일을 source 명령어로 실행하는 경우. 현재 쉘에서 runfile.sh를 실행하면 A와 B의 명령어는 그대로 현재쉘에서 실행하게 됩니다.

 

 


 

반응형

 

쉘 스크립트(shell script) 예제 실습 준비

 

쉘 스크립트(shell script) 실행 방식의 예를 들기에 앞서 runfile.sh 스크립트 파일 내용을 vi 편집기로 아래와 같이 작성하여 저장합니다.

 

$ vi runfile.sh

#!/bin/bash
apple=red
echo "banana=" $banana
echo "apple=" $apple

 

 

 

 

쉘 스크립트(shell script) 서브쉘 예제

 

runfile.sh 스크립트 파일에 실행 권한을 부여하고 banana 변수에 yellow의 값을 넣어준 후 runfile.sh 스크립트 파일을 실행하면 banana의 값은 yellow가 출력되지 않습니다. runfile.sh 스크립트 파일이 실행되면서 서브 쉘에 apple의 변수 red값만 저장이 되고 apple과 banana의 출력만 실행하기 때문입니다.

 

$ chmod +x runfile.sh

$ banana=yellow

$ ./runfile.sh

banana=

apple= red

 

 

 

 

쉘 스크립트(shell script) 현재쉘 예제

 

runfile.sh 스크립트 파일에 실행 권한 없이 source 명령어로 실행이 되지만 이미 서브 쉘 예제로 runfile.sh 스크립트 파일은 실행 권한이 부여되었기 때문에 그대로 진행하겠습니다. 현재 쉘에서 source 명령어로 runfile.sh 스크립트 파일을 실행하게 되면 서브쉘에서 실행되지 않고 현재쉘에서 실행되기 때문에 banana= yellow가 출력됩니다. 현재 사용하고 있는 쉘에 banana=yellow 내용을 입력했기 때문입니다.

 

$ banana=yellow

$ source runfile.sh

banana= yellow

apple =red

 

 

쉘 스크립트(shell script) 참고하기

 

쉘 스크립트 기초#1

리눅스 실행파일 만들기

https://rhrhth23.tistory.com/20

 

[shell script] 쉘 스크립트 기초 #1, 리눅스 실행 파일 만들기

[shell script] 쉘 스크립트 기초, 실행 파일 만들기 ※ 목차 1. 쉘 스크립트(shell script)란??? 2. 쉘(shell)의 기본 개념 및 종류 3. 쉘 스크립트(shell script)의 장점 및 활용 4. 쉘 스크립트 작성하기 위한..

rhrhth23.tistory.com

 

쉘 스크립트 기초#2 

변수 선언, 변수 호출

https://rhrhth23.tistory.com/24

 

[shell script] 쉘 스크립트 기초 #2, 기초 문법 - 변수 선언, 변수 호출

[shell script] 쉘 스크립트 기초 문법 - 변수 선언, 변수 호출 ※ 목차 1. 쉘 스크립트에서 변수(Variable) 란??? 2. 쉘 스크립트 변수 기초 문법 및 주의사항 3. 변수 할당 - 숫자 4. 변수 할당 - 문자 5. 변

rhrhth23.tistory.com

 


 

 


 


 

반응형
그리드형

댓글