从 shell 脚本输入文本

Ral*_* F. 2 shell bash shell-script

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

如果有人能给我指出解释简单脚本(如菜单等)的页面,我也将不胜感激。

Gil*_*not 5

这是一个纯解决方案:

string='foo bar base'
for ((i=0; i<=${#string}; i++)); do
    printf '%s' "${string:$i:1}"
    sleep 0.$(( (RANDOM % 5) + 1 ))
done 
Run Code Online (Sandbox Code Playgroud)
  • ${#variable} 是字符串的长度
  • printf可以替换echo以显示字符串和格式输出:
  • %s告诉 toprintf显示一个没有换行符的字符串\n
  • ${string:$i:1} [参数扩展] 1只显示字符串中的特定字母
  • $(( ))是一些算术
  • $(( ( RANDOM % 5 ) + 1 )) 显示一个整数:1 到 5 RANDOMly

奖金

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

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'
Run Code Online (Sandbox Code Playgroud)