쉘, $line1="Test this...test this!"에서 문자를 추출하는 방법

쉘, $line1="Test this...test this!"에서 문자를 추출하는 방법

저는 대본을 작성 중인데 좀 더 재미있게 만들고 싶습니다.

나에게 필요한 것은 오래된 타자기처럼 한 번에 한 글자(공백 포함)를 가져와 화면에 쓰는 루프입니다.

복고풍처럼 보이도록 타이핑 사이에 잠시 멈추거나 잠을 자도록 하겠습니다.

답변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선택 사항, 소수점 이하 자릿수 허용

관련 정보