Вы можете прочитать строку char-by-char, используя синтаксис Substring Expansion
:
${parameter:offset:length}
Пример:
str="abcd"
char=${str:1:1} # => "b"
И получите длину строки с синтаксисом Parameter length
:
${#parameter}
Пример:
${#str}
Таким образом, вы можете перебирать символы, используя это:
for (( i = 0; i < ${#str}; ++i)); do
echo "${str:$i:1}"
done
Из руководства по bash:
${#parameter}
Parameter length
. Длина в символах значения parameter
подставляется.
1029 *
${parameter:offset}
${parameter:offset:length}
Substring Expansion
. Расширяется до длины символов parameter
, начиная с символа, указанного в offset
.