从 shell 脚本输入文本

从 shell 脚本输入文本

我是 shell 脚本新手。我想知道是否有类似于“echo”的命令用于在终端中显示文本,但它不是简单地立即显示它,而是实际键入它,就像有人实际上在终端上键入一样?

如果有人能向我指出解释菜单等简单脚本的页面,我也会很感激。

答案1

这里有一个纯粹的解决方案 :

string='foo bar base'
for ((i=0; i<=${#string}; i++)); do
    printf '%s' "${string:$i:1}"
    sleep 0.$(( (RANDOM % 5) + 1 ))
done 
  • ${#variable}是字符串的长度
  • printf可以替换echo为显示字符串和格式输出:
  • %s告诉 toprintf显示一个不带换行符的字符串\n
  • ${string:$i:1}是一个【参数扩展】1仅显示字符串中的特定字母
  • $(( ))是一些算术
  • $(( ( RANDOM % 5 ) + 1 ))显示一个整数:1 到 5 随机

奖金

这是一个与参数一起使用的函数:

matrix(){
    tput setaf 2 &>/dev/null # green powaaa
    for ((i=0; i<=${#1}; i++)); do
        printf '%s' "${1:$i:1}"
        sleep 0.$(( (RANDOM % 5) + 1 ))
    done
    tput sgr0 2 &>/dev/null
}

matrix 'foo bar base'

答案2

我称它为打字机:

count=0
echo "enter your name"
read b
sleep 2
a="hello"
a=`echo $a" "$b" nice to meet you"`
while [ $count -lt $((${#a}+1)) ]
do
    x=`expr substr "$a" $count 1`
    if [ "$x" != " " ]
    then
        echo -n $x
        sleep 0.2
    else echo -n " "
    fi
    count=$(($count+1))
done
echo " "

相关内容