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.