Najlepsze praktyki i wskazówki dotyczące pisania skontleur jako pro
- 2709
- 166
- Igor Madej
Skrypty powłoki to potężne narzędzie do automatyzacji DevOps. Umożliwia automatyza. Jednak pisanie skutecznych skłonności wymaga przestrzegania najlepszych praktyk i korzystania z niektórych technik, aby Twój kod był wydajny, modułowy i możliwy do utrzymania.
W tym artykule omówimy niektóre z najlepszych praktyk i wskazówek dotyczących scenariuszy skorupy, które mogą pomóc w automatyzacji DevOps.
1. Użyj znaczących nazw zmiennych
Korzystanie z znaczących nazw zmiennych może pomóc uczynić kod bardziej czytelnym i zrozumiałym. Ułatwia także innym utrzymanie kodu, jeśli potrzebują go w przyszłości.
Oto przykład używania znaczących nazw zmiennych w skrypcie powłoki:
#!/bin/bash # Ustaw bieżącą datę Current_Date = $ (data +%y-%m-%d) # Wydrukuj bieżącą datę echo „bieżąca data to: $ current_date”1234567 | #!/bin/bash # Ustaw bieżącą datecurrent_date = $ (data +%y-%m-%d) # Wydrukuj bieżącą dateecho „Obecna data to: $ current_date” |
W tym przykładzie używamy zmiennej "bieżąca data" Aby przechowywać bieżącą datę, a następnie wydrukować ją za pomocą Echo. To wyjaśnia, co przechowuje zmienna i jak jest używana w skrypcie.
2. Użyj sprawdzania błędów
Sprawdzanie błędów jest ważną częścią scenariuszy Shell, szczególnie w celu automatyzacji DevOps. Pomaga ci wcześnie złapać błędy i zapobiec ich powodowaniu problemów w linii.
Oto przykład używania sprawdzania błędów w skrypcie powłoki:
#!/bin/bash # Sprawdź, czy plik istnieje, czy [ ! -f/ścieżka/do/plik]; Następnie Echo „Błąd: Plik nie istnieje.„Wyjdź 1 fi # Kontynuuj z resztą skryptu123456789 | #!/bin/bash # Sprawdź, czy plik istnieje [ ! -f/ścieżka/do/plik]; Następnie Echo „Błąd: Plik nie istnieje.„Wyjdź 1fi # Kontynuuj z resztą skryptu |
W tym przykładzie używamy instrukcji IF, aby sprawdzić, czy plik istnieje. Jeśli plik nie istnieje, drukujemy komunikat o błędzie i wychodzimy z skryptu z niezerowym kodem stanu. To pozwala nam wcześnie złapać błąd i zapobiec kontynuowaniu i potencjalnie powodowaniu większej liczby problemów.
3. Użyj wcięcia
Wcięcie jest ważną częścią uczynienia kodu bardziej czytelnym i zrozumiałym. Może pomóc Ci zobaczyć strukturę kodu na pierwszy rzut oka i ułatwić śledzenie.
Oto przykład użycia wgłębienia w skrypcie powłoki:
#!/bin/bash # pętla za pośrednictwem listy plików dla pliku w/ścieżka/do/plików/*; Zrób # Sprawdź, czy plik jest katalogiem, czy [-d „$ plik”]; Następnie # Wydrukuj nazwę katalogu echo "Directory: $ plik" else # Wydrukuj nazwę pliku echo "plik: $ plik"12345678910111213 | #!/bin/bash # pętla za pośrednictwem listy plików do pliku w/ścieżka/do/plików/*; Zrób # Sprawdź, czy plik jest katalogiem, czy [-d „$ plik”]; Następnie # Wydrukuj nazwę katalogu echo „Directory: $ plik” else # Wydrukuj nazwę pliku echo „plik: $ plik” fidone |
W tym przykładzie używamy wgłębienia, aby pokazać strukturę skryptu. Pętla jest wcięta na jeden poziom, a instrukcje IF są wcięte w innym poziomie. Ułatwia to sprawdzenie, które bloki kodu są zagnieżdżone w jakich innych blokach.
4. Użyj opcji wiersza polecenia
Opcje wiersza poleceń to potężne narzędzie do skontaktowania. Pozwalają ci przekazać argumenty do twojego skryptu i dostosowywać jego zachowanie w oparciu o te argumenty.
Oto przykład używania opcji wiersza polecenia w skrypcie powłoki:
#!/bin/bash # opcje linii poleceń parse podczas getopts ": f: d:" opt; zrób case $ opt in f) # Ustaw plik wejściowy input_file = $ optarg ;; d) # Ustaw katalog wyjściowy output_dir = $ optarg ;; \?) echo „Nieprawidłowa opcja: -$ optarg”> i 2 wyjście 1 ;; :) Opcja echo „$ optarg wymaga argumentu."> I 2 wyjście 1 ;; esac gotowe # zrób coś z plikiem wejściowym i katalogiem wyjściowym12345678910111213141516171819202122232425 | #!/bin/bash # parse linia poleceń opcja getopts ": f: d:" opt; zrób case $ opt in f) # Ustaw plik wejściowy input_file = $ optarg ;; d) # Ustaw katalog wyjściowy output_dir = $ optarg ;; \?) echo „Nieprawidłowa opcja: -$ optarg”> i 2 wyjście 1 ;; :) Opcja echo „$ optarg wymaga argumentu."> I 2 wyjście 1 ;; esacdone # zrób coś z plikiem wejściowym i katalogiem wyjściowym |
5. Unikaj hardkodowania
Podczas tworzenia skierowania do automatyzacji unikaj wartości hardkodowania, takich jak adresy IP, ścieżki plików lub inne szczegóły specyficzne dla systemu. Zamiast tego użyj zmiennych lub plików konfiguracyjnych, aby przechowywać i odwołać się do tych informacji. To sprawi, że skrypt będzie bardziej przenośny i łatwiejszy do utrzymania w przyszłości.
Na przykład zamiast hardkodowania ścieżki pliku jak „/Var/log/komunikaty”, Użyj zmiennej takiej $ Log_path:
#!/bin/bash log_path = "/var/log/message" cat $ log_path12345 | #!/bin/bash log_path = "/var/log/message" cat $ log_path |
6. Użyj instrukcji warunkowych
Instrukcje warunkowe są przydatne w skryptach powłoki do podejmowania decyzji na podstawie określonych warunków. Najczęstszym stwierdzeniem warunkowym w BASH jest stwierdzenie IF.
#!/bin/bash, jeśli [-e/tmp/plik.txt] Następnie echo „plik istnieje” plik else echo ”nie istnieje” FI12345678 | #!/bin/bash, jeśli [-e/tmp/plik.txt] Następnie echo „plik istnieje” plik else echo ”nie istnieje” FI |
Ten skrypt sprawdza, czy plik „/Tmp/plik.tekst" istnieje. Jeśli tak, drukuje "Plik istnieje", A jeśli nie, drukuje "Plik nie istnieje".
7. Użyj funkcji
Funkcje są blokami kodu, które można nazwać wiele razy od skryptu. Pomagają utrzymać kod zorganizowany i ułatwiają utrzymanie.
#!/bin/bash funkcja check_disk_space df -h check_disk_space1234567 | #!/bin/bash funkcja check_disk_space df -h check_disk_space |
Ten skrypt definiuje funkcję „Check_disk_space” To działa „DF -H” polecenie pokazania użycia miejsca na dysku. Funkcja jest następnie wywoływana na końcu skryptu.
8. Użyj logowania
Rejestrowanie jest ważną częścią scenariuszy Shell dla DevOps, ponieważ pomaga rozwiązywać problemy z błędami i śledzić wykonanie skryptu. Polecenie Logger można użyć do wysyłania wiadomości do dziennika systemu.
#!/bin/bash funkcja check_disk_space df -h logger „Space sprawdzony” check_disk_space12345678 | #!/bin/bash funkcja check_disk_space df -h logger „Space sprawdzony” check_disk_space |
Ten skrypt wysyła komunikat do dziennika systemu za pomocą polecenia Logger, gdy wywoływana jest funkcja Check_Disk_Space.
Wniosek
Skrypty skorupowe jest niezbędną umiejętnością dla profesjonalistów DevOps. Postępując zgodnie z tymi najlepszymi praktykami i wskazówkami, możesz tworzyć bardziej skuteczne i możliwe do utrzymania skrypty do automatyzacji i administracji systemu. Zawsze pamiętaj, aby dokładnie przetestować skrypty i używać kontroli wersji do śledzenia zmian.
- « AWK - zaawansowane funkcje
- Operacje arytmetyczne AWK Przewodnik po podstawowych metodach obliczeniowych »