Jak debugować skrypty Linux Bash za pomocą ShellCheck

Czy masz problem ze skryptem Bash, który napisałeś dla swojego komputera z systemem Linux? Zamiast przeszukiwać niezliczone wątki w StackExchange w celu uzyskania pomocy programistycznej, rozważ użycie narzędzia ShellCheck do debugowania skryptów Linux Bash i automatycznego znajdowania błędów w kodzie.

Pobierz ShellCheck

ShellCheck to przydatne narzędzie, ale nie jest dostarczane z systemem operacyjnym Linux po wyjęciu z pudełka. Zamiast tego, jeśli chcesz go użyć, musisz go najpierw zainstalować. W tym samouczku omówimy, jak zainstalować ShellCheck z różnych oficjalnych źródeł oprogramowania. Pokażemy również, jak sprawić, by program działał za pomocą ogólnego pliku binarnego Linux.

Otwórz okno terminala i zaktualizuj swoje pakiety. Następnie postępuj zgodnie z instrukcjami, które odpowiadają używanemu systemowi operacyjnemu Linux.

Ubuntu

ShellCheck znajduje się w oficjalnych źródłach oprogramowania Ubuntu, więc instalacja jest dość łatwa. W terminalu użyj menedżera pakietów Apt i uzyskaj najnowszą działającą wersję ShellCheck.

sudo apt install shellcheck

Debian

Debian Stable ma starszą wersję ShellCheck gotową do zainstalowania przez użytkowników. Pamiętaj, że ta wersja jest wstrzymywana ze względu na sposób, w jaki Debian działa.

Uwaga: chcesz mieć nowszą wersję programu ShellCheck? Postępuj zgodnie z naszym przewodnikiem i dowiedz się, jak uzyskać bardziej nowoczesne oprogramowanie w systemie Debian.

sudo apt-get install shellcheck

Arch Linux

Aby uzyskać ShellCheck w Arch Linux, musisz najpierw włączyć repozytorium oprogramowania „Społeczność”. Włączenie „Społeczność” wymaga edycji pliku Pacman.conf. Aby edytować plik, otwórz Pacman.conf w Nano.

sudo nano /etc/pacman.conf

Przewiń (za pomocą klawiszy strzałek) i znajdź sekcję „Społeczność” pliku. Usuń wszystkie wystąpienia symbolu # (około trzech linii). Następnie zapisz zmiany, naciskając przycisk Ctrl + O.

Po wprowadzeniu nowych zmian w Pacman.conf naciśnij Ctrl + X, aby zamknąć Nano. Następnie zsynchronizuj ponownie Pacmana, aby ustawić dostęp do repozytorium Arch Linux „Community”.

sudo pacman -Syyuu

Na koniec zainstaluj ShellCheck w Arch Linux za pomocą:

sudo pacman -S shellcheck

Fedora

Aby uzyskać narzędzie do analizy skryptów ShellCheck w Fedorze Linux, otwórz terminal i użyj narzędzia do zarządzania pakietami DNF.

sudo dnf install ShellCheck

OpenSUSE

Instalacja ShellCheck w OpenSUSE nie wymaga żadnych specjalnych kroków, jak to ma miejsce w głównych źródłach oprogramowania dystrybucji. Aby to uzyskać, wprowadź następujące polecenie pakietu Zypper w oknie terminala.

sudo zypper install ShellCheck

Ogólny Linux

Użytkownicy mniej znanych dystrybucji Linuksa, którzy chcą mieć dostęp do narzędzia do analizy skryptów ShellCheck, muszą zainstalować uniwersalną wersję binarną. Na szczęście ta wersja binarna jest łatwa do zainstalowania i nie wymaga majstrowania przy kodzie źródłowym. Aby to działało, wykonaj poniższe czynności!

Krok 1: wyeksportuj wersję ShellCheck, którą zamierzasz pobrać do środowiska terminala.

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

Krok 2: używając narzędzia do pobierania 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 TarXZ za pomocą polecenia tar.

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

Krok 4: zainstaluj ShellCheck na komputerze z systemem Linux za pomocą polecenia cp.

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

Debuguj skrypty za pomocą ShellCheck

Głównym celem ShellCheck jest przejrzenie skryptu (zwykle Bash), wykrycie niewłaściwych poleceń i zaproponowanie poprawek. W przypadku podstawowego zastosowania wykonaj następujące czynności.

Najpierw dysk CD do miejsca, w którym skrypt, który chcesz sprawdzić, znajduje się na komputerze z systemem Linux. W tym samouczku nasz skrypt znajduje się w ~ / shell-scripts. Twój może się różnić.

cd ~/shell-scripts

Uruchom polecenie ls i wyświetl wszystkie pliki w bieżącym katalogu.

Uwaga: jeśli zamierzasz używać ShellCheck w katalogu z wieloma typami plików, dobrym pomysłem jest połączenie razem grep i ls. Użycie tych dwóch poleceń razem umożliwia odfiltrowanie wszystkich plików niebędących skryptami.

ls

Lub połącz z grep, aby wyświetlić tylko pliki skryptów.

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

Znajdź nazwę pliku skryptu w wierszu polecenia ls i zaznacz nazwę pliku myszą. Gdy będziesz gotowy, uruchom go przez ShellCheck i sprawdź kod.

shellcheck name-of-file.sh

lub

shellcheck name-of-file.bash

Natychmiast po uruchomieniu polecenia shellcheck wykryje problemy z kodem i umieści go w wierszu polecenia terminala. Przeczytaj i dowiedz się, jak ulepszyć swoje programowanie, postępując zgodnie z podanymi w nim sugestiami.

Zapisz raport ShellCheck do pliku

Uzyskanie natychmiastowego raportu w terminalu dla twojego programowania bash jest bardzo przydatne, jednak możesz go stracić, jeśli zamkniesz terminal. Aby obejść utratę raportu z kontroli powłoki, zalecamy zapisanie wyniku do pliku tekstowego, uruchamiając program w połączeniu z funkcją >> 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

Wyświetl zapisany raport w terminalu za pomocą polecenia cat.

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

lub

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