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, ...

Get Bash. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.