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

Linux PC용으로 작성한 Bash 스크립트에 문제가 있습니까? 프로그래밍 도움말을 위해 StackExchange의 수많은 스레드를 살펴보는 대신 ShellCheck 도구를 사용하여 Linux Bash 스크립트를 디버그하고 코드에서 자동으로 실수를 찾는 것을 고려하십시오.

ShellCheck 가져오기

ShellCheck는 유용한 도구이지만 Linux 운영 체제와 함께 즉시 제공되지는 않습니다. 대신 사용하려면 먼저 설치해야 합니다. 이 튜토리얼에서는 다양한 공식 소프트웨어 소스에서 ShellCheck를 설치하는 방법을 다룰 것입니다. 또한 일반 Linux 바이너리를 통해 프로그램을 작동시키는 방법도 보여줍니다.

터미널 창을 열고 패키지를 업데이트하십시오. 그런 다음 Linux 운영 체제에 해당하는 지침을 따르십시오.

우분투

ShellCheck는 공식 Ubuntu 소프트웨어 소스에 있으므로 설치가 매우 쉽습니다. 터미널에서 Apt 패키지 관리자를 사용하고 최신 버전의 ShellCheck가 작동하도록 합니다.

sudo apt install shellcheck

데비안

Debian Stable에는 사용자가 설치할 수 있는 이전 버전의 ShellCheck가 있습니다. 이 버전은 데비안이 작동하는 방식 때문에 보류된다는 점을 명심하십시오.

참고: ShellCheck 프로그램의 최신 버전을 원하십니까? 우리 가이드를 따라 데비안에서 최신 소프트웨어를 얻는 방법에 대해 알아보세요.

sudo apt-get install shellcheck

아치 리눅스

Arch Linux에서 ShellCheck를 사용하려면 먼저 “커뮤니티” 소프트웨어 저장소를 활성화해야 합니다. “커뮤니티”를 활성화하려면 Pacman.conf 파일을 편집해야 합니다. 파일을 편집하려면 Nano에서 Pacman.conf를 엽니다.

sudo nano /etc/pacman.conf

스크롤하여(화살표 키 사용) 파일의 “커뮤니티” 섹션을 찾습니다. # 기호의 모든 인스턴스를 제거합니다(약 3줄). 그런 다음 Ctrl + O 버튼을 눌러 편집 내용을 저장합니다.

Pacman.conf에 대한 새로운 편집이 처리된 상태에서 Ctrl + X를 눌러 Nano를 닫습니다. 그런 다음 Pacman을 다시 동기화하여 Arch Linux “커뮤니티” 저장소에 대한 액세스를 설정합니다.

sudo pacman -Syyuu

마지막으로 다음을 사용하여 Arch Linux에 ShellCheck를 설치합니다.

sudo pacman -S shellcheck

페도라

Fedora Linux에서 ShellCheck 스크립트 분석 도구를 얻으려면 터미널을 열고 DNF 패키지 관리 도구를 사용하십시오.

sudo dnf install ShellCheck

오픈수세

OpenSUSE에 ShellCheck를 설치하는 것은 배포판의 주요 소프트웨어 소스에 있기 때문에 특별한 단계가 필요하지 않습니다. 그것을 얻으려면 터미널 창에서 다음 Zypper 패키지 명령을 입력하십시오.

sudo zypper install ShellCheck

일반 리눅스

ShellCheck 스크립트 분석 도구에 액세스하려는 덜 알려진 Linux 배포판 사용자는 범용 바이너리 릴리스를 설치해야 합니다. 운 좋게도 이 바이너리 릴리스는 설치하기 쉽고 소스 코드를 수정할 필요가 없습니다. 작동하려면 아래 단계를 따르세요!

  Linux 명령줄에서 화면을 기록하는 방법

1단계: 다운로드하려는 ShellCheck 버전을 터미널 환경으로 내보냅니다.

export scversion="stable" # or "v0.4.7", or "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 명령을 사용하여 Linux PC에 ShellCheck를 설치합니다.

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

ShellCheck로 스크립트 디버그

ShellCheck의 주요 목적은 스크립트(보통 Bash)를 살펴보고 오용된 명령을 감지하고 수정 사항을 제공하는 것입니다. 기본적인 사용법은 다음과 같습니다.

먼저 Linux PC에서 확인하려는 스크립트가 있는 CD로 이동합니다. 이 튜토리얼에서 스크립트는 ~/shell-scripts에 있습니다. 당신은 다를 수 있습니다.

cd ~/shell-scripts

ls 명령을 실행하고 현재 디렉토리의 모든 파일을 봅니다.

참고: 여러 파일 유형이 있는 디렉토리에서 ShellCheck를 사용하려는 경우 grep과 ls를 함께 결합하는 것이 좋습니다. 이 두 명령을 함께 사용하면 스크립트가 아닌 모든 파일을 필터링할 수 있습니다.

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