私はスクリプトを書いていますが、もっと楽しくしたいです。
私にとって必要なのは、古いタイプライターのように、一度に1文字(スペースを含む)を取り、画面に書き込むループです。
レトロのように見えるように、タイピングの間にしばらく止まったり、寝るようにしましょう。
答え1
純粋なシェルスクリプトを使用する必要はありません(つまり、awkまたはperlを混在させることができます)、ここでawkを使用する例があります。
echo "This is... test this" |awk '{
for (i=1; i <= length($0); i++) {
printf substr($0,i,1);
system("sleep 0.1");
}
print "";
}'
答え2
pv
これを行うことができるいくつかのGNUユーティリティがありますが、echo "$line1" | pv -qL 10
必要に応じてシェルでも実行できます。
#!/bin/bash
while [[ -n "$1" ]]
do
sleep ${2:-"0.2"}
printf "%c" "$1"
temp=${1#?}
set -- "$temp" "$2"
done
echo
使用法:script.name 'text in single quotes' [interval time in seconds][1]
変数を使用するには、次のようにします。
line1='Test this… test this!'
script.name "$line1" 0.3
[1]:interval time in seconds
オプション、小数点以下の桁を許可