Wskazówki dotyczące basha w systemie Linux: wiele sposobów iteracji z bash

Wskazówki dotyczące basha w systemie Linux: wiele sposobów iteracji z bash

The zmiażdżyć Powłoka zapewnia doskonałą funkcjonalność, jeśli chodzi o pisanie skryptów. Wiąże się to z tak wieloma sposobami iteracji przez stertę danych, że można wiele zrobić, uruchamiając jeden skrypt. Niezależnie od tego, czy przeglądasz mnóstwo wartości liczbowych, dni tygodnia, nazw użytkowników, słów, plików czy czegoś zupełnie innego, zmiażdżyć Ma opcję, która Ci to ułatwi.

pętle for, while i till

Pierwszą rzeczą, którą powinieneś wiedzieć o redundancji zmiażdżyć Czy istnieje kilka podstawowych poleceń do użycia. The Podczas gdy Pętla będzie się zapętlać tak długo, jak długo dany warunek będzie spełniony. The aż do pętla będzie się zapętlać, dopóki jakiś warunek nie stanie się prawdziwy, i dla Pętla będzie przebiegać przez szereg wartości niezależnie od ich pochodzenia.

Na przykład za pomocą Podczas gdyiteruj, gdy liczba jest mniejsza niż 100, iteruj przez pozostałe dni miesiąca, jak pokazano w poniższym skrypcie (gdzie przechwytujemy bieżący dzień za pomocą Data Polecenie i ostatni dzień ostatniej serii na wyjściu kal polecenie) lub przechodzenie przez coś zupełnie innego.

#/bin/bash

# day of month
day=`date | awk '{print $3'}`
# number of days in month
numdays=`cal | tail -2 | head -1 | awk '{print $NF}'`

while [ $day -le $numdays ]
do
    echo $day
    ((day++))
done

Po uruchomieniu tego skryptu powinniśmy zobaczyć coś takiego:

$ remaining_days
27
28
29
30

Poniższy skrypt powtarza się, dopóki współpracownik się nie zaloguje. Dopóki liczba logowań użytkowników wynosi zero (czyli nie są oni zalogowani), wyświetlamy „wait” i czekamy kolejne 60 sekund. Gdy użytkownik jest zalogowany, tzw Podczas gdy Pętla zostaje zakończona iw ciągu 60 sekund pojawia się komunikat potwierdzający obecność użytkownika w celu zalogowania.

#!/bin/bash

echo -n "user to wait for> "
read user

while [ `who | grep $user | wc -l` == 0 ]
do
    echo waiting
    sleep 60
done

echo $user is online

The aż do Odcinkowa wersja scenariusza jest bardzo podobna.

READ  Apple wysyła płatności ugodowe właścicielom iPhone'ów dotkniętych „batterygate”

Copyright © 2022 IDG Communications, Inc. Wszelkie prawa zastrzeżone.

Halsey Andrews

„Lekarz gier. Fanatyk zombie. Studio muzyczne. Kawiarni ninja. Miłośnik telewizji. Miły fanatyk alkoholik.

Rekomendowane artykuły

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *