Bash를 사용하여 진행률 표시줄을 만드는 방법은 무엇입니까?
이것은 내 스크립트입니다.
#!/bin/bash
pass='number1 number12 number13 number14 number15 number16'
chk='number14'
for i in $pass ; do
if [ "$i" == "$chk" ]; then
echo ' Found ^_^'
else
echo 'loading 50%'
fi
done
echo 'loading 50%'
진행률 표시줄을 만들기 위해 무엇이든 바꾸고 싶습니다 .
답변1
답변2
이게 네가 말하는거야? "Found"라는 줄은 루프를 계속해도 좋지 않지만 거기에서 무엇을 하고 싶은지 모르겠습니다.
#!/bin/bash
pass='number1 number12 number13 number14 number15 number16'
chk='number14'
max=0
for i in $pass ; do
let max=$max+1
done
index=0
strdone="#########################"
strtodo="-------------------------"
for i in $pass ; do
let index=$index+1
if [ "$i" == "$chk" ]; then
echo ""
echo ' Found ^_^'
else
lendone=$((index * ${#strdone} / max))
let lentodo=${#strdone}-$lendone
percent=$((index * 100 / max))
echo -ne "[#${strdone:0:$lendone}${strtodo:0:$lentodo}] $percent%\r"
fi
sleep 1
done
echo ""
출력은 끝에 있습니다:
[#############-------------] 50%
Found ^_^
[##########################] 100%