Pisanie wydajnego dla pętli w poradach i sztuczkach Bash
- 2002
- 38
- Igor Madej
Bash jest popularnym językiem skorupowym, który jest powszechnie używany w systemach operacyjnych opartych na Linux i Unix. Jednym z najczęściej używanych konstrukcji w BASH jest pętla, która jest używana do iteracji nad zestawem elementów i wykonywania konkretnego działania na każdym elemencie. Jednak ważne jest, aby wydajnie pisać w przypadku pętli, aby zoptymalizować wydajność skryptu.
Należy również zauważyć, że Bash jest tylko jednym z wielu dostępnych języków scenariuszy, a jego możliwości mogą być ograniczone w niektórych scenariuszach. Jeśli okaże się, że skrypty bash stają się zbyt złożone lub trudne do zoptymalizowania, możesz rozważyć użycie silniejszego języka skryptowego, takiego jak Python lub Perl.
W tym samouczku zbadamy kilka wskazówek i wskazówek dotyczących efektywnego pisania dla pętli w Bash.
Wskazówka nr 1: Użyj odpowiedniej składni
Składnia Basic for Loop w Bash jest następująca:
dla zmiennej w [listach] do [poleceń (s)]1234 | dla zmiennej w [listach] do [poleceń (s)] |
[Lista] może być zestawem elementów oddzielonych przez spacje lub może być zakres liczb określonych za pomocą składni start… end. Ważne jest, aby użyć poprawnej składni dla konkretnego przypadku użycia.
Na przykład, jeśli iterujesz duży zestaw elementów, lepiej jest użyć składni zakresu zamiast wymieniać każdy element indywidualnie. Może to pomóc w poprawie wydajności poprzez zmniejszenie liczby iteracji potrzebnych do ukończenia pętli.
Wskazówka nr 2: Minimalizuj polecenia zewnętrzne
Za każdym razem, gdy wykonywasz polecenie w pętli, ponosi one karę wydajności z powodu kosztów uruchomienia nowego procesu. Dlatego ważne jest, aby zminimalizować liczbę zewnętrznych poleceń używanych w ramach pętli dla.
Na przykład, zamiast używać zewnętrznego polecenia do zliczenia liczby plików w katalogu, możesz użyć wbudowanego polecenia bash, aby osiągnąć to samo:
file_count = 0 dla pliku w/ścieżka/do/katalog/* do ((file_count ++))12345 | file_count = 0 dla pliku w/ścieżka/do/Directory/*do ((file_count ++)) |
To eliminuje potrzebę zewnętrznego polecenia, co może pomóc poprawić wydajność.
Wskazówka nr 3: Użyj tablic
Korzystanie z tablicy do przechowywania przedmiotów, które chcesz iterować, może pomóc w poprawie wydajności pętli. Wynika to z faktu, że tablice są bardziej wydajne niż użycie serii wartości oddzielonych przestrzenią.
Na przykład zamiast korzystać z listy takich wartości, takich jak ten:
Wartość wartości 1 wartość 2 Wartość 3 Wartość 4 do [polecenie (s)]1234 | Wartość wartości 1 wartość 2 Wartość3 Wartość4do [polecenie (s)] |
Możesz użyć takiej tablicy:
wartości = („wartość12345 | wartości = („wartość |
Może to pomóc w poprawie wydajności poprzez zmniejszenie kosztów parsowania łańcucha na indywidualne wartości.
Wskazówka nr 4: Użyj rozszerzenia parametru powłoki
Korzystanie z rozszerzenia parametrów Shell może pomóc w uproszczeniu pętli i poprawić wydajność poprzez zmniejszenie liczby poleceń, które należy wykonać.
Na przykład, zamiast używać zewnętrznego polecenia, aby znaleźć długość tablicy, możesz użyć rozszerzenia parametru powłoki:
wartości = („wartość<$#values[@]; i++)) do [command(s) "values[i]"] done12345 | wartości = („wartość<$#values[@]; i++))do [command(s) "values[i]"]done |
To eliminuje potrzebę zewnętrznego polecenia, co może pomóc poprawić wydajność.
Wskazówka #5: Użyj wbudowanych poleceń Bash
Bash ma wiele wbudowanych poleceń, które mogą pomóc poprawić wydajność twoich pętli. Na przykład możesz użyć polecenia printf do drukowania sformatowanego wyjścia w pętli, co może być bardziej wydajne niż użycie zewnętrznego polecenia, takiego jak echo.
bo w 1… 10 do printf „liczba %d \ n” „$ i” gotowe1234 | bo w 1… 10 do printf „liczba %d \ n” „$ i” gotowe |
Może to pomóc w poprawie wydajności poprzez zmniejszenie kosztów ogólnych uruchamiania poleceń zewnętrznych.
Wniosek
Podsumowując, pisanie wydajne dla pętli w BASH może znacznie poprawić wydajność scenariuszy i skrócić czas wykonania. Wdrażając porady i sztuczki omówione w tym artykule, takie jak minimalizacja użycia poleceń zewnętrznych, zmniejszenie liczby iteracji i stosowanie technik równoległości, możesz zoptymalizować skrypty Bash w celu szybszego i wydajniej przetwarzania danych.
Niezależnie od wybranego języka, kluczem do pisania wydajnych skryptów jest ciągłe analizowanie i optymalizację kodu, testowanie różnych podejść i zawsze pamiętaj o wydajności. Mając na uwadze te zasady, możesz stworzyć solidne i wydajne skrypty, które mogą poradzić sobie nawet z najbardziej wymagającymi zadaniami przetwarzania danych.