如何在 bash 中制作闪烁的文本?

如何在 bash 中制作闪烁的文本?

printf "\e[41mend==>\e[m $i在下面的脚本中,如何使命令“ ”的输出中的“end”一词闪烁?

#!/bin/bash
in=path_to_my_folder
for i in $(cat ${in}/file.txt); do
Command 1;
Command 2;
.
.
.
.
Command N;
sleep 60
echo "Review command stats summary"
printf "\e[41mend==>\e[m $i "

done

答案1

这称为眨眼模式。

如果您的终端支持它,语法是

echo -e "Normal \e[5mBlink"

答案2

我们可以在 bash 中应用类似以下代码:

#!/bin/bash

DATA[0]="     _/  _/    _/                            _/    "
DATA[1]="  _/_/_/_/_/  _/_/_/      _/_/_/    _/_/_/  _/_/_/ "
DATA[2]="   _/  _/    _/    _/  _/    _/  _/_/      _/    _/"
DATA[3]="_/_/_/_/_/  _/    _/  _/    _/      _/_/  _/    _/ "
DATA[4]=" _/  _/    _/_/_/      _/_/_/  _/_/_/    _/    _/  "

# virtual coordinate system is X*Y ${#DATA} * 5

REAL_OFFSET_X=0
REAL_OFFSET_Y=0

draw_char() {
  V_COORD_X=$1
  V_COORD_Y=$2

  tput cup $((REAL_OFFSET_Y + V_COORD_Y)) $((REAL_OFFSET_X + V_COORD_X))

  printf %c ${DATA[V_COORD_Y]:V_COORD_X:1}
}


trap 'exit 1' INT TERM
trap 'tput setaf 9; tput cvvis; clear' EXIT

tput civis
clear

while :; do

for ((c=1; c <= 7; c++)); do
  tput setaf $c
  for ((x=0; x<${#DATA[0]}; x++)); do
    for ((y=0; y<=4; y++)); do
      draw_char $x $y
    done
  done
done

done

来源http://wiki.bash-hackers.org/scripting/terminalcodes

相关内容