Rust로 작성된 초고속 Python 린터이자 코드 포매터로, 900개 이상의 린트 규칙과 Black 호환 포매팅을 제공합니다.
koalaman/shellcheck
bash와 sh 셸 스크립트에서 버그, 이식성 문제, 잘못된 습관을 찾아내는 정적 분석 도구입니다.
- 스타
- 40,295
- 포크
- 1,973
- 열린 이슈
- 1,090
- 마지막 커밋
- 어제
어떤 프로젝트인가요?
ShellCheck는 셸 스크립트를 분석해 구문 오류, 의미상 문제, 스크립트가 잘못 동작하거나 나중에 실패하게 만들 수 있는 미묘한 함정에 관한 경고와 개선 제안을 제공합니다. bash와 sh 스크립트를 대상으로 하며, 따옴표로 감싸지 않은 변수, 잘못 사용한 테스트 연산자, 깨진 find 또는 grep 패턴, 무시된 종료 코드 등의 문제를 찾아내고 각 경고에 설명을 덧붙입니다.
shellcheck.net에서 웹으로 사용하거나 CLI에서 실행할 수 있으며, Vim, Emacs, Sublime, VS Code, Pulsar 같은 에디터에서도 사용할 수 있습니다. 출력 형식은 일반 텍스트, JSON, CheckStyle XML, GCC 스타일 메시지를 지원하며, 경고가 발생하면 빌드나 테스트 실행을 실패 처리하도록 종료 코드를 활용할 수 있습니다.
ShellCheck는 Haskell로 작성되었으며 GPL-3.0 라이선스로 배포됩니다. 대부분의 시스템 패키지 관리자, Docker, conda를 통해 설치할 수 있고 Linux, macOS, Windows용 사전 컴파일 바이너리도 제공됩니다.
핵심 기능
- 01bash와 sh 스크립트의 따옴표 오류, 잘못된 조건문, 잘못 사용한 명령을 찾아냅니다.
- 02checkbashisms와 유사하게 스크립트의 shebang을 기준으로 이식성 문제를 표시합니다.
- 03각 경고에 자세한 위키 페이지 링크와 설명을 제공합니다.
- 04다양한 에디터 및 CI 서비스와 연동됩니다.
- 05텍스트, JSON, CheckStyle XML 또는 GCC 호환 메시지 형식으로 출력합니다.
활용 사례
- CI 파이프라인에서 셸 스크립트를 린트해 새로운 경고가 발생하면 빌드를 실패 처리합니다.
- 스크립트를 실행하기 전에 따옴표로 감싸지 않은 변수와 위험한 rm 또는 find 패턴을 찾아냅니다.
- /bin/sh용으로 작성한 스크립트가 bash 전용 기능에 의존하지 않는지 확인합니다.
- 에디터에서 셸 스크립트를 편집하는 동안 바로 피드백을 받습니다.
빠른 시작
- 1
Homebrew로 ShellCheck 설치하기
brew install shellcheck - 2
스크립트에 ShellCheck 실행하기
shellcheck yourscript
사용 전 알아둘 점
- 카피레프트 라이선스인 GPL-3.0에 따라 라이선스가 부여됩니다.
- 소스에서 컴파일하려면 약 2GB의 RAM이 필요합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- shellcheck은(는) 무엇인가요?
- bash와 sh 셸 스크립트에서 버그, 이식성 문제, 잘못된 습관을 찾아내는 정적 분석 도구입니다. ShellCheck는 셸 스크립트를 분석해 구문 오류, 의미상 문제, 스크립트가 잘못 동작하거나 나중에 실패하게 만들 수 있는 미묘한 함정에 관한 경고와 개선 제안을 제공합니다. bash와 sh 스크립트를 대상으로 하며, 따옴표로 감싸지 않은 변수, 잘못 사용한 테스트 연산자, 깨진 find 또는 grep 패턴, 무시된 종료 코드 등의 문제를 찾아내고 각 경고에 설명을 덧붙입니다.
- shellcheck은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- shellcheck은(는) GPL-3.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- shellcheck은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. shellcheck의 마지막 커밋은 2026년 11월 5일입니다.
- shellcheck은(는) 어디에 사용할 수 있나요?
- CI 파이프라인에서 셸 스크립트를 린트해 새로운 경고가 발생하면 빌드를 실패 처리합니다. 스크립트를 실행하기 전에 따옴표로 감싸지 않은 변수와 위험한 rm 또는 find 패턴을 찾아냅니다. /bin/sh용으로 작성한 스크립트가 bash 전용 기능에 의존하지 않는지 확인합니다. 에디터에서 셸 스크립트를 편집하는 동안 바로 피드백을 받습니다.
- shellcheck는 어떻게 설치하나요?
- Homebrew로 ShellCheck 설치하기: brew install shellcheck 스크립트에 ShellCheck 실행하기: shellcheck yourscript
- shellcheck은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/koalaman/shellcheck
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
ECMAScript/JavaScript 코드의 문제 패턴을 찾아내고 많은 항목을 자동으로 수정하는 플러그인형 린터입니다.
Ruby 커뮤니티 스타일 가이드 규칙을 적용하고 여러 위반 사항을 자동 수정하는 Ruby 정적 코드 분석기이자 포매터입니다.
코드를 실행하지 않고 오류와 코드 냄새를 찾아내며 코딩 표준을 적용하는 Python 정적 분석 도구입니다.
golint를 대체해 바로 사용할 수 있는 빠르고 설정 가능한 Go linter로, 사용자 정의 규칙과 출력 포맷터를 지원합니다.
AI 코드 리뷰 후 실행되어 pull request의 병합 위험도를 평가하고 영향받는 파일과 엔드포인트를 나열하는 CLI 및 GitHub Action입니다.