매일 업데이트
2022-02-13 22:57 5 min

ShellCheck로 Linux Bash 스크립트를 디버그하는 방법

리눅스 PC에서 작성한 Bash 스크립트에서 오류가 발생했나요? StackExchange에서 프로그래밍 도움말을 찾아보는 대신, ShellCheck 도구를 활용하여 Linux Bash 스크립트를 디버깅하고 코드 내 실수를 자동으로 찾아내 보세요.

ShellCheck 설치하기

ShellCheck는 매우 유용한 도구이지만, 리눅스 운영체제에 기본적으로 포함되어 있지는 않습니다. 따라서 사용하기 위해서는 먼저 설치해야 합니다. 이 가이드에서는 다양한 공식 소프트웨어 소스에서 ShellCheck를 설치하는 방법을 설명하고, 일반 리눅스 바이너리를 통해 프로그램을 구동하는 방법도 제시합니다.

터미널 창을 열고 패키지를 최신 상태로 업데이트한 후, 사용 중인 리눅스 운영체제에 맞는 설치 지침을 따르세요.

우분투

ShellCheck는 공식 우분투 소프트웨어 저장소에 등록되어 있어 매우 간단하게 설치할 수 있습니다. 터미널에서 Apt 패키지 관리자를 사용하여 ShellCheck 최신 버전을 설치하세요.

sudo apt install shellcheck

데비안

데비안 안정 버전에는 사용자가 설치할 수 있는 구 버전의 ShellCheck가 포함되어 있습니다. 데비안의 정책상 최신 버전이 아닌 점을 유의하세요.

참고: ShellCheck 최신 버전을 원하시나요? 데비안에서 최신 소프트웨어를 설치하는 방법은 이 가이드를 참고하세요.

sudo apt-get install shellcheck

아치 리눅스

아치 리눅스에서 ShellCheck를 사용하려면 먼저 "커뮤니티" 소프트웨어 저장소를 활성화해야 합니다. "커뮤니티" 저장소를 활성화하려면 Pacman.conf 파일을 편집해야 합니다. Nano 편집기를 사용하여 Pacman.conf 파일을 여세요.

sudo nano /etc/pacman.conf

화살표 키를 사용하여 스크롤하고 파일의 "커뮤니티" 섹션을 찾습니다. # 기호가 있는 모든 행 (약 3줄)을 삭제합니다. 편집이 완료되면 Ctrl + O 키를 눌러 변경 사항을 저장합니다.

Pacman.conf 파일 변경 사항이 저장되면 Ctrl + X 키를 눌러 Nano 편집기를 닫습니다. 그런 다음 Pacman을 다시 동기화하여 아치 리눅스의 "커뮤니티" 저장소에 접근할 수 있도록 합니다.

sudo pacman -Syyuu

마지막으로 다음 명령어를 사용하여 아치 리눅스에 ShellCheck를 설치합니다.

sudo pacman -S shellcheck

페도라

페도라 리눅스에서 ShellCheck 스크립트 분석 도구를 사용하려면 터미널을 열고 DNF 패키지 관리 도구를 사용하세요.

sudo dnf install ShellCheck

오픈수세

오픈수세에 ShellCheck를 설치하는 것은 배포판의 주요 소프트웨어 소스에 포함되어 있으므로 특별한 절차가 필요하지 않습니다. 터미널 창에서 다음 Zypper 패키지 명령어를 실행하여 설치하세요.

sudo zypper install ShellCheck

일반 리눅스

ShellCheck 스크립트 분석 도구를 사용하려는 덜 알려진 리눅스 배포판 사용자는 범용 바이너리 릴리스를 설치해야 합니다. 다행히 이 바이너리 릴리스는 설치하기 쉽고, 소스 코드를 수정할 필요가 없습니다. 다음 단계를 따라 설치를 진행하세요.

1단계: 다운로드할 ShellCheck 버전을 터미널 환경 변수로 설정합니다.

export scversion="stable" # 또는 "v0.4.7", "latest" 중 선택

2단계: wget 다운로드 도구를 사용하여 최신 ShellCheck 바이너리 릴리스를 가져옵니다.

wget "https://storage.googleapis.com/shellcheck/shellcheck-${scversion}.linux.x86_64.tar.xz"

3단계: tar 명령을 사용하여 ShellCheck TarXZ 아카이브를 압축 해제합니다.

tar --xz -xvf shellcheck-"${scversion}".linux.x86_64.tar.xz

4단계: cp 명령을 사용하여 리눅스 PC에 ShellCheck를 설치합니다.

cp shellcheck-"${scversion}"/shellcheck /usr/bin/

ShellCheck로 스크립트 디버깅하기

ShellCheck의 주요 기능은 스크립트(주로 Bash)를 분석하여 잘못 사용된 명령어를 감지하고 수정 사항을 제시하는 것입니다. 기본적인 사용법은 다음과 같습니다.

먼저 리눅스 PC에서 검사하려는 스크립트가 있는 디렉토리로 이동합니다. 이 가이드에서는 스크립트가 ~/shell-scripts 디렉토리에 있다고 가정합니다. 사용자의 경로는 다를 수 있습니다.

cd ~/shell-scripts

ls 명령어를 실행하여 현재 디렉토리의 모든 파일을 확인합니다.

참고: 다양한 파일 형식이 있는 디렉토리에서 ShellCheck를 사용하려는 경우, ls 명령어와 grep 명령어를 함께 사용하는 것이 좋습니다. 이 두 명령어를 함께 사용하면 스크립트 파일이 아닌 다른 파일을 걸러낼 수 있습니다.

ls

또는 grep과 함께 사용하여 스크립트 파일만 확인합니다.

ls | grep ".sh"
ls | grep ".bash"

ls 프롬프트에서 스크립트 파일 이름을 찾아 마우스로 파일 이름을 강조 표시합니다. 준비가 되면 ShellCheck를 통해 실행하고 코드를 검사하세요.

shellcheck name-of-file.sh

또는

shellcheck name-of-file.bash

shellcheck 명령어가 실행되면 코드 문제가 감지되어 터미널 프롬프트에 표시됩니다. 이를 읽고 제시된 수정 사항을 따라 프로그래밍 실력을 향상시키세요.

ShellCheck 보고서를 파일로 저장하기

Bash 프로그래밍을 위해 터미널에서 실시간으로 보고서를 확인하는 것은 매우 유용하지만, 터미널을 닫으면 보고서가 사라질 수 있습니다. ShellCheck 보고서 손실을 방지하려면 터미널의 >> 리디렉션 기능을 사용하여 출력을 텍스트 파일로 저장하는 것이 좋습니다.

shellcheck name-of-file.sh >> ~/Documents/shellcheck-report-name-of-file.sh

또는

shellcheck name-of-file.bash >> ~/Documents/shellcheck-report-name-of-file.bash

cat 명령어를 사용하여 터미널에서 저장된 보고서를 확인하세요.

cat ~/Documents/shellcheck-report-name-of-file.sh | more

또는

cat ~/Documents/shellcheck-report-name-of-file.bash | more
저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.