Jak wykonywać tryb debugowania składni w skontlerze

Jak wykonywać tryb debugowania składni w skontlerze

Rozpoczęliśmy serię debugowania skryptów Shell, wyjaśniając różne opcje debugowania i sposób włączenia trybów debugowania skryptu Shell.

Po napisaniu skontlerzy scenariuszy zaleca się, abyśmy praktycznie sprawdzali składnię w skryptach przed ich uruchomieniem, w przeciwieństwie do patrzenia na ich wyniki, aby potwierdzić, że działają poprawnie.

W tej części serii przejdziemy przez sposób korzystania z trybu debugowania składni. Pamiętaj, że wyjaśniliśmy różne opcje debugowania w pierwszej części tej serii i tutaj użyjemy ich do wykonywania debugowania skryptów.

Włączanie twardego trybu debugowania

Zanim przejdziemy do głównego koncentracji tego przewodnika, omówimy krótko Tryb wetbose. Jest włączony przez -v Opcja debugowania, która każe powładzie wyświetlać wszystkie wiersze w skrypcie podczas ich czytania.

Aby zademonstrować, jak to działa, poniżej znajduje się przykładowy skrypt powłoki, aby przeliczyć obrazy PNG na format JPG.

Wpisz (lub skopiuj i wklej) w pliku.

#!/bin/bash #Convert dla obrazu w *.png; Konwertuj „$ Image” „$ obraz%.png.JPG „Echo” obraz $ konwertowany na $ obraz%.png.jpg "gotowe wyjście 0 

Następnie zapisz plik i uczyń skrypt wykonywalny za pomocą poniższego polecenia:

skrypt $ chmod +x.cii 

Możemy wywołać skrypt i wyświetlić wszystkie wiersze w nim, ponieważ są one czytane przez skorupę jak:

skrypt $ bash -v.cii 
Wyświetl wszystkie wiersze w skrypcie Shell

Włączanie trybu debugowania składni w skorupach skorupowych

Wracając do naszego tematu podkreślenia, -N Aktywuje tryb sprawdzania składni. Instruuje powłokę, aby zasadniczo odczytał wszystkie polecenia, jednak ich nie wykonuje, to (powłoka) tylko bada używaną składnię.

W przypadku błędów w skrypcie powłoki, powłoka wyświetli błędy na terminalu, w przeciwnym razie nic nie wyświetla.

Składnia do aktywowania sprawdzania składni jest następująca:

$ bash -n skrypt.cii 

Ponieważ składnia w skrypcie jest poprawna, powyższe polecenie nie wyświetli żadnego wyjścia. Dlatego spróbujmy usunąć zrobione słowo, które zamyka pętlę i sprawdź, czy pokazuje błąd:

Poniżej znajduje się zmodyfikowany skrypt powłoki, aby przeliczyć obrazy PNG na format JPG, który zawiera błąd.

#!/bin/bash #script z #convert dla obrazu w *.png; Konwertuj „$ Image” „$ obraz%.png.JPG „Echo” obraz $ konwertowany na $ obraz%.png.jpg "exit 0 

Zapisz plik, a następnie uruchom go podczas wykonywania sprawdzania składni:

$ bash -n skrypt.cii 
Sprawdź składnię w skrypcie powłoki

Z powyższego wyjścia widać, że istnieje problem składniowy z naszym skryptem, w pętli brakuje zamknięcia zrobione słowo kluczowe. A powłoka szukała tego do końca pliku, a kiedy go nie znalazła (zrobione), powłoka wydrukowała błąd składni:

scenariusz.SH: Wiersz 11: Błąd składni: nieoczekiwany koniec pliku 

Możemy również połączyć tryb sprawdzania w trybie wetonowym i składniową sprawdzanie:

$ bash -vn skrypt.cii 
Włącz sprawdzanie Verbose i Składnia w skrypcie

Alternatywnie możemy włączyć sprawdzanie składni, modyfikując pierwszy wiersz skryptu powyżej, jak w następnym przykładzie.

#!/bin/bash -n #Umieszczenie pierwszego wiersza skryptu, aby włączyć składnię sprawdzanie #Convert dla obrazu w *.png; Konwertuj „$ Image” „$ obraz%.png.JPG „Echo” obraz $ konwertowany na $ obraz%.png.jpg "exit 0 

Tak jak poprzednio, zapisz plik i uruchom go podczas wykonywania sprawdzania składni:

$ ./scenariusz.cii scenariusz.SH: Wiersz 12: Błąd składni: Nieoczekiwany koniec pliku 

Ponadto możemy zastosować wbudowane polecenie Set Shell, aby włączyć tryb debugowania w skrypcie powyżej.

W poniższym przykładzie sprawdzamy tylko składnię pętli dla naszego skryptu.

#!/bin/bash #Using Set wbudowane polecenie powłoki, aby włączyć debugowanie #Convert #Enable Debugging Set -n dla obrazu w *.png; Konwertuj „$ Image” „$ obraz%.png.JPG „Echo” obraz $ konwertowany na $ obraz%.png.jpg "#Disable debugging zestaw +n exit 0 

Jeszcze raz zapisz plik i wywołaj skrypt:

$ ./scenariusz.cii 

Podsumowując, powinniśmy zawsze upewnić się, że składnie sprawdzamy nasze scenariusze powłoki, aby uchwycić każdy błąd przed ich wykonaniem.

Aby przesłać nam jakiekolwiek pytania lub opinie dotyczące tego przewodnika, użyj poniższego formularza odpowiedzi. W trzecie.