Pętla for „C like”

Pętla FOR jest najbardziej intuicyjną pętlą jaka jest używana w programowaniu, znajduje się ona niemalże w każdym języku programowania.

Podpowiedź

W Bashu pętla for występuje w dwóch wariacjach:

  1. Pętla for „bash like”
  2. Pętla for „C like”

Na tej stronie skupimy się na pętli „C like for”.

Podpowiedź

W Bashu stosuje się konstrukcje „C like for” relatywnie rzadko.

Pętla FOR w stylu języka C występuje niemlże we wszystkich językach programowania - jej składnia przedstawia się następująco:

for ((<inicjacja_zmiennej>; <warunek_zakonczenia>; <zwiększanie/zmniejszanie>)) ; do
   ...polecenia w pętli...
done

Pętla ta służy do wykonania jakichś operacji gdzie znamy ilość elementów z których musimy skorzytać, do policzenia czegoś, wygenerowania ciągu liczb, etc.

Przykład #1

#!/bin/sh

for (( i=1; $i <= 10; i++ )) ; do
       echo " Iteracja nr: $i"
done

Podpowiedź

Petla „C like for” nie jest dostępna we wszystkich implementacjach Basha, dlatego można ją częściowo „udawać” korzystając ze składni „Bash like for” i polecenia seq.

Przykład #2

#!/bin/sh

for i in `seq 1 10`
do
    echo ">> Iteracja nr: $i"
done

Ostrzeżenie

Czy zauwazyłeś, że w Przykładzie #2 nie ma średnika przed słowem kluczowym do ?

Programista Basha ma do wyboru, albo umieścić średnik przed slowem do, albo zacząć słowo do od nowej linii. Nie jest to intuicyjne i jest czasem powodem występowania dziwnych błedów w skrypcie (dlatego zwracam na to uwagę).

Oba przykładowe skrypty (#1 i #2) wyprodukują identyczne wyjście:

>> Iteracja nr: 1
>> Iteracja nr: 2
>> Iteracja nr: 3
>> ...
>> Iteracja nr: 10