10 Przydatne wskazówki dotyczące pisania skutecznych skryptów bash w Linux
- 2273
- 611
- Juliusz Sienkiewicz
Skrypty powłoki to najłatwiejsza forma programowania, którego można się nauczyć/zrobić w Linux. Co więcej, jest to niezbędna umiejętność administracji systemu do automatyzacji zadań, opracowywania nowych prostych narzędzi/narzędzi, aby wymienić tylko kilka.
W tym artykule podzielimy się 10 przydatnymi i praktycznymi wskazówkami dotyczącymi pisania skutecznych i niezawodnych scenariuszy Bash i obejmują one:
1. Zawsze używaj komentarzy w skryptach
Jest to zalecana praktyka, która jest nie tylko stosowana do scenariuszy powłoki, ale wszystkich innych rodzajów programowania. Pisanie komentarzy w skrypcie pomaga Tobie lub niektórym innym przechodzeniu przez skrypt zrozumienie, co robią różne części scenariusza.
Na początek komentarze są zdefiniowane za pomocą #
podpisać.
#TecMint to najlepsza strona dla wszystkich artykułów Linux
2. Zrób wyjście skryptu, gdy się nie powiedzie
Czasami Bash może nadal wykonywać skrypt, nawet gdy pewne polecenie się nie powiedzie, wpływając w ten sposób na resztę skryptu (może ostatecznie spowodować błędy logiczne). Użyj poniższego wiersza, aby wyjść z skryptu, gdy polecenie się nie powiedzie:
#LET SCRIPT Wyjdź, jeśli polecenie nie powiedzie się --o errexit lub set -e
3. Zrób wyjście skryptu, gdy Bash używa niezgłoszonej zmiennej
Bash może również spróbować użyć niezgłoszonego skryptu, który może spowodować błąd logiczny. Dlatego użyj następującego wiersza, aby poinstruować BASH, aby wyjść z skryptu, gdy próbuje użyć niezgłoszonej zmiennej:
#LET SCRIPT Wyjście Jeśli używana jest zmienna UNESPED, ustaw -o rzeczownik lub set -u
4. Użyj podwójnych cytatów, aby odniesienie do zmiennych
Korzystanie z podwójnych cytatów podczas odniesienia (przy użyciu wartości zmiennej) pomaga zapobiegać podziałowi słów (w odniesieniu do białej listy) i niepotrzebnego globbingu (rozpoznawanie i rozszerzanie wieloznacznych).
Sprawdź poniższy przykład:
#!/bin/bash #Let script exit Jeśli polecenie nie powiada się --o errexit #LET Script Wyjście Jeśli używana jest zmienna UNSESPED -Nazwy echo „Nazwy echo” bez podwójnych cytatów = „TecMint FossMint Linusay” dla nazwy w nazwach $ ; echo „$ name” DODODOWE ECHO ”Nazwy z podwójnymi cytatami„ echo dla nazwy w „$ name”; echo „$ name” zrobione wyjście 0
Zapisz plik i wyjdź, a następnie uruchom go w następujący sposób:
$ ./nazwy.ciiUżyj podwójnych cytatów w skryptach
5. Użyj funkcji w skryptach
Z wyjątkiem bardzo małych skryptów (z kilkoma wierszami kodu), zawsze pamiętaj o użyciu funkcji do modularyzacji kodu i uczynienia skryptów bardziej czytelnych i wielokrotnego użytku.
Składnia funkcji pisania jest następująca:
funkcja check_root () command1; polecenie2; Lub check_root () command1; polecenie2;
W przypadku kodu pojedynczego wiersza użyj znaków zakończenia po każdym poleceniu tak:
check_root () command1; polecenie2;
6. Użyj = zamiast == dla porównań ciągów
Zauważ, że ==
jest synonimem =
, Dlatego używaj tylko jednego =
Na przykład dla porównań ciągów:
value1 = ”Tecmint.com ”wartość2 =” fossmint.com ”, jeśli [„ $ value1 ”=„ $ value2 ”]]
7. Użyj $ (polecenie) zamiast starszego „dowództwa” do zastąpienia
Podstawienie polecenia zastępuje polecenie wyjściem. Używać $ (polecenie)
Zamiast Quakotes 'Komenda'
do zastąpienia dowodzenia.
Jest to zalecane nawet przez narzędzie ShellCheck (pokazuje ostrzeżenia i sugestie dotyczące scenariuszy skorupy). Na przykład:
user = 'echo „$ uid”' użytkownik = $ (echo „$ uid”)
8. Użyj tylko odczytu, aby zadeklarować zmienne statyczne
Zmienna statyczna się nie zmienia; Jego wartości nie można zmienić po zdefiniowaniu w skrypcie:
Czytonly Passwd_file = ”/etc/passwd” ReadOnly Group_file = ”/etc/grupa”
9. Używaj nazw wielkimi do zmiennych środowiskowych i małych liter dla zmiennych niestandardowych
Wszystkie zmienne środowiska bash są nazwane wielkimi literami, dlatego używają małych liter, aby nazwać niestandardowe zmienne, aby uniknąć konfliktów zmiennych nazwy:
#definicja zmiennych niestandardowych przy użyciu małej litery i używając górnej części zmiennych ENV nikto_file = ”$ home/plik do pobrania/NiKto-Master/program/NiKto.PL ”Perl„ $ NIKTO_FILE ”-H„ 1 USD ”
10. Zawsze wykonywaj debugowanie długich scenariuszy
Jeśli piszesz scenariusze Bash z tysiącami wierszy kodu, znalezienie błędów może stać się koszmarem. Aby łatwo naprawić rzeczy przed wykonaniem skryptu, wykonaj trochę debugowania. Opanuj tę wskazówkę, czytając poniższe przewodniki:
- Jak włączyć tryb debugowania skryptu Shell w Linux
- Jak wykonywać tryb debugowania składni w skontlerze
- Jak śledzić wykonywanie poleceń w skrypcie powłoki z śledzeniem powłoki
To wszystko! Czy masz jakieś inne najlepsze praktyki scenariuszy do podzielenia się? Jeśli tak, użyj poniższego formularza komentarza, aby to zrobić.
- « LNAV - Obserwuj i analizuj dzienniki Apache z terminalu Linux
- Trash -cli - narzędzie do zarządu „śmieci” z linii poleceń Linux »