Bash for Loop w jednej linii

Bash for Loop w jednej linii
W każdym języku programowania lub skryptowym pętla jest kwintesencją. Pętle mają na ogół wykonywać powtarzalne zadanie, dopóki nie zostanie spełniony określony warunek. Bash to potężny język scenariusza, który obsługuje wszystkie główne cechy języka skryptowego (w tym pętle).

Ten przewodnik pokazuje jedną linię do pętli w Bash.

Bash for Loop

Bash ma wiele rodzajów pętli - dla, podczas gdy i do czasu. Każdy rodzaj pętli ma inną strukturę. Jednak podstawy pozostają takie same. Dla początkujących ten przewodnik wyjaśnia dogłębnie co do różnych pętli bashu i sposobu ich wdrożenia.

Jak sugeruje tytuł tego przewodnika, skupiamy się na pętli. Podczas gdy w przypadku pętli zwykle wymaga wielu linii, możemy reprezentować go w jednym wierszu, jeśli pętla jest wystarczająco prosta. Proces ten wymaga jednak zrozumienia podstaw bashu dla pętli.

Aby uruchomić nasze kody bash, potrzebujemy skryptu powłoki. Mam już manekin, aby uruchomić nasze kody.

$ Cat Dummy.cii

Dla struktury pętli

To jest podstawowa struktura pętli dla pętli.

dla [listy]
Do
zrobione

Oto szybki przykład pętli wdrażający tę strukturę.

bo w 1… 5
Do
Echo „Numer: $ i”
zrobione

Bash obsługuje również styl C dla pętli. Jeśli masz tło programowania w C, w stylu C dla pętli będzie łatwe do zrozumienia.

Do ((; ; ))
Do
zrobione

Umieśćmy styl C dla pętli w akcji.

dla ((i = 1; i <= 5; i++)); do
Echo „Numer: $ i”
zrobione

W przypadku pętli może również pracować z plikami. W poniższym przykładzie pętla przeszuka wszystkie partycje na dysku „/dev/sda” i wydrukuje wszystko.

dla i in /dev /sda*; Do
echo „$ i”
zrobione

Jedna linia do pętli

Z zakrytymi podstawami możemy teraz kompresować pętle w jedną linię. Zasadniczo wyeliminujemy nowe linie z całego kodu pętli. Możemy również uruchomić te pętle bezpośrednio z wiersza poleceń.

Skompresujmy pierwszy przykład. Jeśli wyeliminujemy wszystkie nowe linie, kod będzie wyglądał tak.

$ dla i in 1… 5; Echo „Numer: $ i”; zrobione

Jak widać, wszystkie nowe linie są usuwane. Zamiast tego te nowe linie są zastępowane półkolisami (;).

Możemy zrobić to samo w stylu C dla pętli.

$ dla ((i = 1; i <= 5; i++)); do echo "number: $i"; done

Spójrz na następujący przykład. Wszystkie pliki konfiguracyjne w środku „/itp.”Zostanie skopiowany jako kopia zapasowa do katalogu„ ~/kopii zapasowej ”.

$ dla i in /etc /*.conf; do CP $ I/HOME/Viktor/Backup; zrobione

Do pętli z warunkowaniem

W wielu przypadkach pętla będzie zawierać warunki do podejmowania decyzji w różnych punktach powtórzenia.

Tutaj następujące pętle wydrukują wszystkie liczby parzyste w stałym zakresie.

Dla I in 1… 10; Do
jeśli [$ (i%2)) -EQ 0]; Następnie
echo „$ nawet”
fi
zrobione

Możliwe jest wyrażenie całej tej pętli w jedną linię. Tak jak poprzednio, wymień całą nową linię na półkolony (;).

$ dla i in 1… 10; zrób, jeśli [$ (i%2)) -EQ 0]; Potem echo „$ i nawet”; fi; zrobione

Zaleca się, aby najpierw zapisać pętlę z odpowiednim odstępem. Po potwierdzeniu, że pętla działa prawidłowo, możemy bezpiecznie skompresować ją do jednej linii.

Różne przykłady

Oto garść jednej linii dla pętli w celach informacyjnych.

$ za i w 1 2 3 4 5; Echo „Numer: $ i”; zrobione
$ za i w procesorach płyty głównej Ram PSU GPU; echo „Computer Part: $ i”; zrobione

Następnym przykładem będzie nieskończona pętla.

$ dla ((;;;)); echo "do nieskończoności!"; zrobione

Końcowa myśl

Ten przewodnik pokazuje różne skuteczne przykłady pętli. Bardzo łatwo jest przekształcić normę dla pętli w jedną linię. Mamy nadzieję, że po ćwiczeniu tych przykładów czytelnicy będą mieli dobry pomysł na użycie bash do pętli w jednej linii.

Szczęśliwy komputer!