반응형
Shell Script
보통 반복되는 명령어들을 자동화시키고 싶을 때 쉘 스크립트를 짜곤 합니다.
저도 종종 짜서 사용하곤 하는데, 쉘 스크립트라는 게 참 가독성이 기가 막혀요. 조금만 복잡해지면 알아보기가 어려워집니다. 물론 저같은 초보자한테는요.
그래서 아 컴파일러처럼 쉘 스크립트도 문법을 검사할 수 없나? 싶어서 찾아본 프로그램입니다. 굉장히 편리하고, 놓칠 수 있는 실수를 잘 잡아주네요 :)
ShellCheck
ShellCheck는 정적 분석 도구입니다. 정적 분석이란 프로그램이 실행되기 전에 소스 코드와 리소스만으로 분석하는 걸 말해요. 프로그램이 실행되며 여러 환경에 영향을 끼치는 걸 파악하고, 메모리를 보고 분석하는 건 동적 분석이라고 합니다.
정적 분석 도구는 사용하기 쉽다는 장점이 있는데, 이런 소스 코드 문법 검사같은 행위에 아주 잘 어울리죠. 공식 홍보 사진(?)을 보세요.
이렇게 단순한 명령어 실행만으로 문법 검사가 완료됩니다.
설치해볼게요. 설치도 간단히 패키지 관리자를 이용하시면 됩니다.
sudo apt install shellcheck
사용법을 볼게요. 잘못된 옵션을 주거나 아무 인수를 주지 않으면 나오네요.
awesometic@odroid-nas:~$ shellcheck
No files specified.
Usage: shellcheck [OPTIONS...] FILES...
-e CODE1,CODE2.. --exclude=CODE1,CODE2.. exclude types of warnings
-f FORMAT --format=FORMAT output format
-s SHELLNAME --shell=SHELLNAME Specify dialect (bash,sh,ksh)
-V --version Print version information
예시로 제가 작성한 트랜스미션 관련 자동화 툴을 검사해보면,
저렇게 노란 부분은 고쳤으면 한다 하는 거고, 초록 부분은 안 고쳐도 되지만 알아둬라 이런 의미인 것 같아요. 아예 틀리면 빨간 부분도 나오는데, 그건 고쳐야만 하는 부분이예요.
줄 번호도 함께 표시되니까,
vi transmission_done_script.sh +55
이렇게 줄번호로 한 번에 찾아가서 고쳐주면 되겠죠 :)
모두 shellcheck와 함께 편안한 쉘 스크립트 코딩 되시길 바랍니다.
참고
반응형
'Programming > OS, Program, Framework Tip' 카테고리의 다른 글
Adapta-gtk-theme - 가장 Material한 리눅스 테마 (Ubuntu 17.10 이상) (5) | 2018.02.25 |
---|---|
Zsh with Oh My Zsh - Bash를 대체할 대세 Shell (2) | 2018.02.08 |
우분투 17.10 - Gtk-WARNING cannot open display 고치는 방법 (1) | 2017.12.13 |
scp - SSH 프로토콜로 파일 전송 (0) | 2017.11.14 |