O'Reilly logo

Bash. Receptury by Cameron Newham, JP Vossen, Carl Albing

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

13.9. Przetwarzanie danych znak po znaku

Problem

Trzeba przeanalizować dane wejściowe, ale z pewnych powodów powinny one być odczytywane znak po znaku.

Rozwiązanie

Funkcja wyodrębniania fragmentu ciągu tekstowego umożliwia podzielenie tekstu. Z kolei inna funkcji powłoki dostarcza informacji na temat długości ciągu tekstowego:

#!/usr/bin/env bash
# plik receptury: onebyone
#
# pobieranie danych wejściowych znak po znaku

while read ALINE
do
    for ((i=0; i < ${#ALINE}; i++))
    do
        ACHAR=${ALINE:i:1}
        # przetwarzanie zmiennej $ACHAR, np. echo $ACHAR
        echo $ACHAR
    done
done

Analiza

Instrukcja read pobiera wiersz danych ze standardowego strumienia wejściowego i przekazuje te dane do zmiennej $ALINE. Ponieważ w poleceniu read zdefiniowana jest tylko jedna zmienna, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required