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