15赞
989
当前位置:  开发笔记 > 编程语言 > 正文

Shell编程之matrix

代码如下:

#!/bin/bash
blue="\033[0;34m"
brightblue="\033[1;34m"
cyan="\033[0;36m"
brightcyan="\033[1;36m"
green="\033[0;32m"
brightgreen="\033[1;32m"
red="\033[0;31m"
brightred="\033[1;31m"
white="\033[1;37m"
black="\033[0;30m"
grey="\033[0;37m"
darkgrey="\033[1;30m"


colors=($blue $brightgreen $grey)
spacing=${1:-100}
scroll=${2:-0}
screenlines=$(expr `tput lines` - 1 + $scroll)
screencols=$(expr `tput cols` / 2 - 1)
chars=(a b c d e f g h i j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7 8 9 0 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)    ##请在此处修改你想显示的字符

count=${#chars[@]}
colorcount=${#colors[@]}

trap "tput sgr0; clear; exit" SIGTERM SIGINT

if [[ $1 =~ "-h" ]]
  then
  echo "display a matrix screen in the terminal"
  echo "usage:          matrix [SPACING [SCROLL]]"
  echo "example: matrix 100 0"
  exit 0
fi

clear
tput cup 0 0

while :
  do
  for i in $(eval echo {1..$screenlines})
    do
     for i in $(eval echo {1..$screenlines})
      do
      rand=$(($RANDOM%$spacing))
      case $rand in
       0)
        printf "${colors[$RANDOM%$colorcount]}${chars[$RANDOM%$count]} ";;
       1)
        printf "  ";;
       *)
        printf "\033[2C";;
      esac
     done
     printf "\n"
    done
    tput cup 0 0
done

执行效果如下:
Shell编程之matrix


推荐阅读
author-avatar
手机用户2602927935
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有