我是 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 " "