我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Shell中实现飞行文字效果

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Shell中实现飞行文字效果

大家肯定见过WEB页面上飞行字的效果,但是在Linux系统中,特别是bash命令行模式下,如何实现echo出来的字符串以飞行的特效展现出来呢?
这个特效不见得实用,但偶尔拿来自娱自乐或炫耀一番倒是个不错的方法,呵呵,下面以一段Shell Script代码来给大家讲解如何实现……


#!/bin/bash


[ -z $1 ] && echo "Input is invalid! " && exit 1

txt=($(cat $1|sed 's/ +/_/g'))

lines=${#txt[@]}

max_show=10   #最多显示行数(超过总行数则设为总行数)

[ ${max_show} -gt ${lines} ] && max_show=${lines}

hlt_line=3  #高亮显示位置(不超过总行1/2,设为3实际是第4行)

[ ${hlt_line} -gt $(( lines / 2 )) ] && hlt_line=$(( lines / 2 ))

sTTY=$(stty -g)  #保存终端设置


clear

echo -ne "33[?25l" #隐藏光标


spaces() {

local i j n

i=0; n=0

for (( j=0; j <= ${lines}; j++ ));do

[ $i -lt ${#txt[$j]} ] && (( i = ${#txt[$j]} )) && (( n = $j ))

done

echo ${txt[$n]}|sed 's/./  /g'

}


space_line=$(spaces)


#传递的参数是欲显示行的序数:show 1 表示第一行高亮显示

show() {

local i j text crt_line

j=$1


for (( i=0; i < max_show; i++ ));do

crt_line=$(( j + i - hlt_line ))

if [ $i -eq ${hlt_line} ] && [ ${crt_line} -ge 0 ] && [ ${crt_line} -le ${lines} ];then

text="33[;32m"${txt[${crt_line}]}"33[0m"

elif [ ${crt_line} -lt 0 ] || [ ${crt_line} -gt ${lines} ];then

text=${space_line}

else

text=${txt[${crt_line}]}

fi

echo -ne "33[$((i+3));0H${space_line}"

echo -ne "33[$((i+3));6H${text}"

done

}


#测试

for (( j = 0; j < lines + hlt_line +1 ; j++ ));do

show $j

sleep 1

done

恢复默认设置方法:


echo ""

stty ${sTTY} #恢复终端设置

echo -e "33[?25h33[0;0H" #恢复光标

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Shell中实现飞行文字效果

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Shell中实现飞行文字效果

大家肯定见过WEB页面上飞行字的效果,但是在Linux系统中,特别是bash命令行模式下,如何实现echo出来的字符串以飞行的特效展现出来呢? 这个特效不见得实用,但偶尔拿来自娱自乐或炫耀一番倒是个不错的方法,呵呵,下面以一段Shell S
2022-06-04

Shell中怎么实现飞行文字效果

Shell中怎么实现飞行文字效果,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。#!/bin/bash[ -z $1 ] && echo "Input is invalid!
2023-06-09

Javascript中怎么实现逐行滚动文字效果

Javascript中怎么实现逐行滚动文字效果,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。//FILE: scrolltext.js CREATED: DannyKang
2023-06-03

怎么用批处理实现的文字的飞入+变色效果

小编给大家分享一下怎么用批处理实现的文字的飞入+变色效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!代码如下:@echo off&setlocal enabledelayedexpansion&cls&color 0f&
2023-06-08

Android实现文字滚动效果

Android 实现文字滚动效果,自己写了个timer小计时器,textview文字上下翻动效果:public class AutoTextView extends TextSwitcher implementsViewSwitcher.V
2022-06-06

VC中如何实现文字竖排效果

这篇文章主要介绍VC中如何实现文字竖排效果 ,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!好多人都觉得在VC中实现文字竖排是一件很难的事情,其实可以使用“躺”着的字体很方便的实现文字竖排。Windows中有一些字体是
2023-06-08

CSS3如何实现文字浮雕效果,镂刻效果,火焰文字

这篇文章主要介绍了CSS3如何实现文字浮雕效果,镂刻效果,火焰文字,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。要做出这个效果,首先必须知道css的一个属性:text-sha
2023-06-08

纯CSS3怎么实现文字效果

这篇文章主要介绍了纯CSS3怎么实现文字效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。今天我们来研究几款文字效果,主要利用text-shadow、webkit内核的几个独
2023-06-15

实现微信小程序中的文字打字机效果

实现微信小程序中的文字打字机效果微信小程序作为一种新兴的应用开发方式,已经在各行业得到了广泛的应用。在小程序中,文字是最为基本的展示形式之一,有时为了增加趣味性和吸引用户注意力,我们可以采用文字打字机效果来呈现文本内容。本文将介绍如何在微信
实现微信小程序中的文字打字机效果
2023-11-21

ps文字阴影效果如何实现

这篇文章主要介绍了ps文字阴影效果如何实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在文字的展现形式上,为了突出效果,我们可以给文字加上阴影的效果。下面我们就来一起看看,
2023-06-14

CSS怎么实现文字淡入效果

这篇文章主要讲解了“CSS怎么实现文字淡入效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS怎么实现文字淡入效果”吧!文字淡入效果的实现需要通过 CSS 定义两个关键帧,将其中一个的不
2023-06-27

编程热搜

目录