Engineering/Linux & Shell

[Linux / OS] Interactive vs Non-Interactive Shell

[앙금빵] 2021. 11. 28.

Shell 이 실행되는 환경을 Interactive 와 Non-Interactive로 두가지로 나누어 볼 수 있다.

Interactive vs Non-Interactive Shell

Interactive Shell Non-Interactive Shell
  • 사용자로 부터 실시간으로 직접 CLI 에 직접 명령을 입력
  • Shell을 실행해서 Script 파일의 명령들을 수행하는 형태
  • 해당 경우 직접 명령을 입력하는 것이 아닌 Script파일에 나열된 일련의 명령들을 순차적으로 실행하는 형태

기본적으로 interactive shell 에서 사용하기 위한 기본적인 기능들은 (history 확장, Alias, job control 등)으로 script 을 실행할 때는 disable 된다.

 

Interactive / Non Interactive Shell Use Case

Interactive Shell Non-Interactive Shell
  1. 일회적인 명령
  2. 실행하는 명령의 결과를 사용자가 판단하여 다음 명령을 실행해야 하는 경우
  1. 반복적인 명령
  2. 명령의 결과를 사용자가 직접 판단할 필요 없이 정해진 규칙에 따라 다음 명령을 실행할 수 있는 경우

Shell Script에는 C 언어와 같은 프로그램 언어와 마찬가지로 조건문, 반복문, 함수등과 같은 프로그래밍 구문들을 포함할 뿐만 아니라 여러 다양한 Scripting 구문들을 포함하고 있어 타 프로그램과 연동하여 시스템 상에서 우리가 원하는 거의 모든 작업을 수행할 수 있다.

 

주의할 점

  • 쉘 스크립트 특성상 시스템 파일 접근이 상당히 빈번한데 이를 적절한 테스트 없이 실행하는 경우 자칫 시스템 파일 혹은 중요한 파일들을 모두 날려버릴 수 있다.
  • 테스트에 테스트를 반복하여 정말로 신뢰할 수 있을 때에만 실행해야 한다.

참조

Interactive vs Non-Interactive Shell
https://mug896.github.io/bash-shell/interactive_non-interactive.html

쉘 스크립트 -제 1장 쉘 소개
https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=big5347&logNo=220100371362

댓글