클라우드 아키텍트 양성과정

쉘 프로그래밍의 이해

종바깅 2021. 5. 12. 11:48

쉘 프로그래밍

IaC(Infrastructure as Code)

  • 인프라를 코드로서 관리
  • 쉘 프로그래밍
  • Ansible

Shell Programming

  • 명령어의 집합
  • 프로그래밍의 장점을 포함

쉘 프로그래밍의 필요성

  • 서버관리 환경성 GUI 등 환경보다 텍스트 기반의 명령어 환경을 이용할 경우가 많음
  • 명령어를 사용할 경우 단순 명령어를 수동으로 입력하는 방식보다, 쉘 프로그래밍을 사용하여 작업을 단순화 할 수 있음

쉘 프로그래밍 작성 시 주의사항

  • 쉘 종류별로 다를 수 있음, Bourne Shell, Korn Shell, C Shell, Bash Shell, Z Shell
  • 프로그래밍의 목적/컨셉 등이 일반적인 프로그래밍과는 다름
    • 컴파일 되는 프로그램보다 실행 속도 등이 떨어짐
    • 컴파일을 하지 않음
    • 정밀계산 등에는 적합하지 않음
    • 텍스트 데이터를 다루는데 중점
      • grep
      • sed
      • awk

쉘 프로그램 작성 요령

  1. 프로그래밍의 목적을 명확히 정의
  2. 목적을 달성하기 위하여 필요한 기능 선정(명령어)
  3. 명령어의 배치
  4. 유연성 추가(논리적 구조)
  5. 프로그램 작성
  6. 테스트 + 수정

쉘 프로그램의 기본 형식

  • Shebang : 쉘 스크립트 가장 윗 줄에 #! 기호로 표기

    • 이 스크립트를 실행할 프로그램 지정

      #!/bin/python, #!/bin/perl, #!/bin/bash

    • 특정 실행프로그램을 사용하여 실행할 경우는 무시됨

    • Shebang이 없고, 특정 실행프로그램을 지정하지 않을 경우, 현재 쉘을 사용하여 실행

  • # : 주석, 해당 줄의 내용은 쉘 스크립트 실행 시 무시

  • 중간 공백줄 삽입이 자유로움

쉘 프로그램의 실행 방식

  • 쉘 스크립트 프로그램 파일의 실행 권한 부여 후 파일명을 지정하여 실행

    • 현재 디렉터리 내의 파일 : ./파일명
    • 다른 디렉터리의 파일명 : 경로/파일명
  • 실행 프로그램을 지정하여 실행하는 방식

    • [실행할 해석기(쉘)] 스크립트 파일 이름

      ex) /bin/bash hello.sh

    • 이 경우, 실행권한이 없는 스크립트도 실행 가능

  • 디버그 옵션

    • 실행시 옵션 지정
      • -x : 실행할 코드가 실행할 내용을 출력
      • -v : 디버그 상태에서 각 스크립트 내 각 실행할 코드를 그대로 표시
      • -f : 스크립트 내 메타문자의 효력을 정지
    • 스크립트 내 디버그 옵션
      • set -[옵션] : 해당 디버그 옵션을 현재 위치부터 활성화
      • set +[옵션] : 해당 디버그 옵션을 현재위치부터 비활성화