클라우드 아키텍트 양성과정
쉘 프로그래밍의 이해
종바깅
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
쉘 프로그램 작성 요령
- 프로그래밍의 목적을 명확히 정의
- 목적을 달성하기 위하여 필요한 기능 선정(명령어)
- 명령어의 배치
- 유연성 추가(논리적 구조)
- 프로그램 작성
- 테스트 + 수정
쉘 프로그램의 기본 형식
Shebang : 쉘 스크립트 가장 윗 줄에 #! 기호로 표기
이 스크립트를 실행할 프로그램 지정
#!/bin/python, #!/bin/perl, #!/bin/bash
특정 실행프로그램을 사용하여 실행할 경우는 무시됨
Shebang이 없고, 특정 실행프로그램을 지정하지 않을 경우, 현재 쉘을 사용하여 실행
# : 주석, 해당 줄의 내용은 쉘 스크립트 실행 시 무시
중간 공백줄 삽입이 자유로움
쉘 프로그램의 실행 방식
쉘 스크립트 프로그램 파일의 실행 권한 부여 후 파일명을 지정하여 실행
- 현재 디렉터리 내의 파일 : ./파일명
- 다른 디렉터리의 파일명 : 경로/파일명
실행 프로그램을 지정하여 실행하는 방식
[실행할 해석기(쉘)] 스크립트 파일 이름
ex) /bin/bash hello.sh
이 경우, 실행권한이 없는 스크립트도 실행 가능
디버그 옵션
- 실행시 옵션 지정
- -x : 실행할 코드가 실행할 내용을 출력
- -v : 디버그 상태에서 각 스크립트 내 각 실행할 코드를 그대로 표시
- -f : 스크립트 내 메타문자의 효력을 정지
- 스크립트 내 디버그 옵션
- set -[옵션] : 해당 디버그 옵션을 현재 위치부터 활성화
- set +[옵션] : 해당 디버그 옵션을 현재위치부터 비활성화
- 실행시 옵션 지정