进度指示器-掉落的一副牌(Bash)

smo*_*uns 5 bash shell-script

我以一副落下的纸牌的形式编写了一个进度指示器(我妻子的想法)。

它尚未达到最终形式。这是代码:

vdeck="| | | | | "
hdeck[1]="__ | | | |"
hdeck[2]="__ __ | | |"
hdeck[3]="__ __ __ | |"
hdeck[4]="__ __ __ __ |"
hdeck[5]="__ __ __ __ __"

while true
do
    clear
    echo -n -e "\r$vdeck"
    sleep 0.8

    for i in 1 2 3 4 5
    do
        echo -n -e "\r${hdeck[$i]}"
        sleep 0.2
    done
    clear
done
Run Code Online (Sandbox Code Playgroud)

是否可以在没有 hdeck 数组的情况下优化此代码并获得相同的效果?增加'|' 意味着增加“hdeck”数组组合,这不好。

Tza*_*ium 3

像这样的东西吗?

#!/bin/bash
LEN=5
echo 'start';
for (( i=0; i<((${LEN}+1)); i++ )); do
echo -ne '\r' 
        for (( j=0; j<${i}; j++ )); do
                 echo -n '_'
        done
        for (( j=${i}; j<${LEN}; j++ )); do
                 echo -n '|'
        done
sleep 0.5
done
echo -e '\ndone'
Run Code Online (Sandbox Code Playgroud)