ShellCheck - narzędzie, które pokazuje ostrzeżenia i sugestie dotyczące skontleurowych scenariuszy

ShellCheck - narzędzie, które pokazuje ostrzeżenia i sugestie dotyczące skontleurowych scenariuszy

ShellCheck jest statycznym narzędziem analizy, które pokazuje ostrzeżenia i sugestie dotyczące złego kodu w skryptach bash/sH. Można go używać na kilka sposobów: z sieci, wklejając skrypt powłoki w edytorze online (ACE - samodzielny edytor kodu napisany w JavaScript) w https: // www.ShellCheck.net (jest zawsze synchronizowana z najnowszym zatwierdzeniem git i jest najprostszym sposobem na danie ShellCheck), aby uzyskać natychmiastową informację zwrotną.

Alternatywnie możesz zainstalować go na komputerze i uruchomić z terminalu, zintegrować go z edytorem tekstu, a także w apartamentach kompilacji lub testowej.

Istnieją trzy rzeczy, które ShellCheck robi przede wszystkim:

  • Wskazuje i wyjaśnia typowe problemy składniowe dla początkujących, które powodują, że powłoka przekazuje tajemnicze komunikaty o błędach.
  • Wskazuje i wyjaśnia typowe problemy semantyczne na poziomie pośredniego, które powodują, że skorupa zachowa.
  • Wskazuje również subtelne zastrzeżenia, przypadki narożne i pułapki, które mogą spowodować, że działający skrypt zaawansowanego użytkownika nie porażił się w przyszłych okolicznościach.

W tym artykule pokażemy, jak zainstalować i używać ShellCheck na różne sposoby, aby znaleźć błędy lub zły kod w skonfrtach w Linux.

Jak instalować i używać ShellCheck w Linux

ShellCheck można łatwo zainstalować lokalnie za pośrednictwem menedżera pakietów, jak pokazano.

Na Debian/Ubuntu

# apt-get instal instaluj ShellCheck 

Na RHEL/CENTOS

# yum -y instaluj epel -release # yum instaluj ShellCheck 

Na Fedorze

# DNF zainstaluj ShellCheck 

Po zainstalowaniu ShellCheck przyjrzyjmy się, jak użyć ShellCheck w różnych metodach, o których wspominaliśmy wcześniej.

Korzystanie z ShellCheck z Internetu

Przejdź do https: // www.ShellCheck.net i wklej swój skrypt w dostarczonym edytorze ACE, wyświetlisz dane wyjściowe na dole edytora, jak pokazano na zrzucie ekranu poniżej.

W poniższym przykładzie skrypt powłoki testowej składa się z następujących wierszy:

#!/bin/bash #declare zmienne Minargs = 2 e_notroot = 50 e_minargs = 100 #OCHO Wartości zmiennych echo $ minargs echo $ e_nonroot exit 0; 
ShellCheck - narzędzie do analizy skryptowej powłoki online

Z powyższego zrzutu ekranu pierwsze dwie zmienne E_NOTROOT I E_minargs zostały zadeklarowane, ale są nieużywane, ShellCheck informuje je jako „sugestywne błędy”:

SC2034: E_NOTROOT wydaje się nieużywany. Sprawdź to lub wyeksportuj. SC2034: E_minargs wydaje się nieużywany. Sprawdź to lub wyeksportuj. 

Następnie niewłaściwa nazwa (w oświadczeniu Echo $ e_nonroot) był użyty do echo zmienna E_NOTROOT, Dlatego ShellCheck pokazuje błąd:

SC2153: Możliwe błędy błędne: E_nonroot nie może być przypisany, ale E_NOTROOT jest 

Ponownie, gdy spojrzysz na polecenia ECHO, zmienne nie zostały podwójnie cytowane (pomaga zapobiegać globaniu i dzieleniu słów), dlatego kontrola powłoki pokazuje ostrzeżenie:

SC2086: Podwójny cytat, aby zapobiec globaniu i dzieleniu słów. 

Używając ShellCheck z terminalu

Możesz także uruchomić ShellCheck z wiersza polecenia, użyjemy tego samego skryptu powłoki powyżej w następujący sposób:

Test $ ShellCheck.cii 
ShellCheck - sprawdza zły kod w skontlerze

Korzystanie z ShellCheck z edytora tekstu

Możesz także obejrzeć ShellCheck Sugestie i ostrzeżenia bezpośrednio w różnych redaktorach, jest to prawdopodobnie bardziej wydajny sposób korzystania z ShellCheck, po zapisaniu plików, pokazuje wszelkie błędy w kodzie.

W Krzepa, Użyj ALE lub SYNTASTIC (użyjemy tego):

Zacznij od instalacji Patogen tak, aby łatwo zainstalować syntastyczne. Uruchom poniższe polecenia, aby uzyskać patogen.krzepa Plik i katalogi, których potrzebuje:

# mkdir -p ~/.vim/autoload ~/.vim/pakiet && curl -lsso ~/.vim/autoload/patogen.vim https: // tpo.PE/patogen.krzepa 

Następnie dodaj to do swojego ~/.VIMRC plik:

Wykonaj patogen#infect () 

Po zainstalowaniu patogenu, a teraz możesz włożyć syntastyczne ~/.vim/pakiet następująco:

# CD ~/.vim/bundle && git Clone - -Depth = 1 https: // github.com/vim-syntastyczne/syntastyczne.git 

Następnie zamknij VIM i uruchom go z powrotem, aby go ponownie załadować, a następnie wpisz polecenie poniżej:

: Helptags 

Jeśli wszystko pójdzie dobrze, powinieneś mieć ShellCheck zintegrowany z Krzepa, Poniższe zrzuty ekranu pokazują, jak to działa przy użyciu tego samego skryptu powyżej.

Sprawdź kod skryptu złego powłoki w VIM

Jeśli otrzymasz błąd po wykonaniu powyższych kroków, prawdopodobnie nie zainstalowałeś Patogen prawidłowo. Ponownie wykonaj kroki, ale upewnij się, że wykonałeś następujące czynności:

  • Stworzył oba ~/.vim/autoload I ~/.vim/pakiet katalogi.
  • Dodano linię Execute Pathogen#infect () do twojego ~/.VIMRC plik.
  • Czy git klon syntastycznego w środku ~/.vim/pakiet.
  • Użyj odpowiednich uprawnień, aby uzyskać dostęp do wszystkich powyższych katalogów.

Możesz także użyć innych redaktorów do sprawdzenia złego kodu w skontleniach, takich jak:

  • W Emacs, używać FlyCheck.
  • W Sublime, zatrudnij Sublimelinter.
  • W Atom użyj Lintera.
  • W większości innych redaktorów użyj zgodności z błędami GCC.

Notatka: Użyj galerii złego kodu, aby wykonać więcej skorupek.

ShellCheck Github Repozytorium: https: // github.com/koalaman/shellcheck

Otóż ​​to! W tym artykule pokazaliśmy, jak instalować i używać ShellCheck Aby znaleźć błędy lub zły kod w skontlerze w Linux. Podziel się z nami swoimi przemyśleniami za pośrednictwem sekcji komentarzy poniżej.

Czy znasz jakiekolwiek inne podobne narzędzia? Jeśli tak, udostępnij informacje o nich również w komentarzach.