bash: чтение текста из строки по одному символу, с пробелами

Мне стало скучно, и я решил написать сценарий для своего текстового приключения с помощью bash. По сути, предполагается оживление печатной машинки в определенных случаях для драматического повествования. Я могу сделать это вручную в таком файле:

sleep 0.1 
echo -n "h"
sleep 0.1 
echo -n "e"
sleep 0.1 
echo -n "l"
sleep 0.1 
echo -n "l"
sleep 0.1 
echo -n "o"

Как вы понимаете, это ужасно утомительно. Вместо этого я хочу извлекать символы из строки (или файла) по одному символу за раз и применять команду сна к каждому символу.

Пока у меня есть следующее, которое читает из файла. IFS= позволяет сохранять пробелы, но не любой другой тип пробела (например, новую строку).

IFS=
while read -n1 achar
do
   echo $achar
done < aFile

Можно ли использовать это, чтобы получить все пробелы? В качестве бонуса, можете ли вы сказать мне, как применить это к пользовательскому сценарию, чтобы мне не приходилось читать из отдельного файла? Итак, допустим, у меня есть строка с именем «привет», и я могу просто передать ее своей функции для анимации в качестве пишущей машинки всякий раз, когда я запускаю свой файл в терминале bash.

Будем признательны за любую помощь. Спасибо!

6
задан derp 5 May 2012 в 04:05
поделиться