Jak debugować skrypty Linux Bash za pomocą ShellCheck

Masz trudności z własnym skryptem Bash na systemie Linux? Zamiast przeszukiwać setki wątków na StackExchange w poszukiwaniu pomocy programistycznej, rozważ wykorzystanie narzędzia ShellCheck, które pomoże Ci zdebugować skrypty Bash oraz automatycznie zidentyfikować błędy w kodzie.

Instalacja ShellCheck

ShellCheck to niezwykle przydatne narzędzie, jednak nie jest ono domyślnie zainstalowane w systemach Linux. Aby z niego skorzystać, musisz najpierw przeprowadzić instalację. W tym przewodniku przedstawimy, jak zainstalować ShellCheck z różnych oficjalnych źródeł oprogramowania, a także jak uruchomić go za pomocą ogólnego pliku binarnego dla Linuxa.

Otwórz terminal i zaktualizuj swoje pakiety. Następnie postępuj zgodnie z instrukcjami, które odpowiadają Twojemu systemowi operacyjnemu Linux.

Ubuntu

ShellCheck jest dostępny w oficjalnych repozytoriach Ubuntu, co czyni jego instalację prostą. W terminalu użyj menedżera pakietów Apt, aby uzyskać najnowszą wersję ShellCheck.

sudo apt install shellcheck

Debian

W stabilnej wersji Debiana dostępna jest starsza wersja ShellCheck, którą można zainstalować. Pamiętaj, że ta wersja jest wstrzymywana ze względu na politykę Debiana.

Chcesz mieć nowszą wersję ShellCheck? Postępuj zgodnie z naszym przewodnikiem, aby dowiedzieć się, jak uzyskać bardziej aktualne oprogramowanie w Debiana.

sudo apt-get install shellcheck

Arch Linux

Aby zainstalować ShellCheck w Arch Linux, musisz najpierw włączyć repozytorium „Community”. Aby to zrobić, edytuj plik Pacman.conf. Otwórz go w edytorze Nano.

sudo nano /etc/pacman.conf

Przewiń w dół do sekcji „Community” w pliku. Usuń znak # z odpowiednich linii (około trzech). Następnie zapisz zmiany, naciskając Ctrl + O.

Po zapisaniu zmian wyjdź z Nano, naciskając Ctrl + X. Następnie zsynchronizuj Pacmana, aby uzyskać dostęp do repozytorium „Community” Arch Linux.

sudo pacman -Syyuu

Na koniec zainstaluj ShellCheck za pomocą poniższego polecenia:

sudo pacman -S shellcheck

Fedora

Aby zainstalować ShellCheck w systemie Fedora, otwórz terminal i użyj menedżera pakietów DNF.

sudo dnf install ShellCheck

OpenSUSE

Instalacja ShellCheck w OpenSUSE nie wymaga specjalnych kroków, gdyż jest dostępny w głównych repozytoriach tej dystrybucji. W terminalu wpisz poniższe polecenie:

sudo zypper install ShellCheck

Ogólny Linux

Użytkownicy mniej popularnych dystrybucji Linuxa, którzy chcą korzystać z narzędzia ShellCheck, powinni zainstalować uniwersalną wersję binarną. Na szczęście ta wersja jest łatwa do zainstalowania i nie wymaga kompilacji kodu źródłowego. Wykonaj poniższe kroki:

Krok 1: Ustaw zmienną środowiskową dla wersji ShellCheck, którą chcesz pobrać.

export scversion="stable" # lub "v0.4.7", lub "latest"

Krok 2: Używając narzędzia wget, pobierz najnowszą wersję binarną ShellCheck.

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

Krok 3: Wyodrębnij archiwum ShellCheck za pomocą polecenia tar.

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

Krok 4: Zainstaluj ShellCheck na swoim systemie Linux za pomocą poniższego polecenia:

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

Debugowanie skryptów z ShellCheck

Podstawowym celem ShellCheck jest analiza skryptu (zwykle w Bash), wykrycie błędów i zaproponowanie poprawek. Aby to zrobić, wykonaj następujące kroki.

Najpierw przejdź do katalogu, w którym znajduje się skrypt, który chcesz sprawdzić. W tym przykładzie zakładamy, że skrypt znajduje się w lokalizacji ~/shell-scripts. Twój katalog może się różnić.

cd ~/shell-scripts

Uruchom polecenie ls, aby wyświetlić wszystkie pliki w bieżącym katalogu.

Jeśli zamierzasz używać ShellCheck w katalogu z różnymi typami plików, warto połączyć polecenia grep i ls, aby wyświetlić tylko pliki skryptów.

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

Znajdź nazwę pliku skryptu w liście plików i skopiuj ją. Następnie uruchom ShellCheck na tym pliku, aby sprawdzić kod.

shellcheck name-of-file.sh

lub

shellcheck name-of-file.bash

Po uruchomieniu polecenia ShellCheck natychmiast wykryje problemy w kodzie i wyświetli je w terminalu. Przeczytaj uważnie wyniki i zastosuj się do sugerowanych poprawek, aby poprawić jakość swojego kodu.

Zapisz raport ShellCheck do pliku

Choć raport wyświetlany w terminalu jest bardzo pomocny, istnieje ryzyko jego utraty po zamknięciu terminala. Aby temu zapobiec, zaleca się zapisanie wyniku analizy do pliku tekstowego, używając polecenia z operatorem >> w terminalu.

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

lub

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

Aby wyświetlić zapisany raport w terminalu, użyj polecenia cat.

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

lub

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