![Bash에서 카운터 표시 및 업데이트](https://linux55.com/image/17649/Bash%EC%97%90%EC%84%9C%20%EC%B9%B4%EC%9A%B4%ED%84%B0%20%ED%91%9C%EC%8B%9C%20%EB%B0%8F%20%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8.png)
내 생각엔 다음과 같다: (Fedora14/bash)
#!/bin/bash
for i in {0..10..1}; do echo -e "$i"'\c'
echo -e "\n\r"
sleep 1
done
그러나 이것은 작동하지 않습니다. 목적: 이와 같지만 "명시적"이 아닙니다.
#!/bin/bash
for i in {0..10..1}; do echo -e "$i"
sleep 1
clear
done
따라서 +1 숫자를 출력하기 위해 전체 화면을 삭제하는 대신 계산 스크립트는 숫자가 있는 행만 삭제하여 예를 들어 멋진 "진행률 표시줄"을 가질 수 있습니다.
답변1
for i in {0..15}; do echo -ne "$i"'\r'; sleep 1; done; echo
기본적으로 단계 폭 1에는 ..1이 필요하지 않습니다.
echo -n
줄 바꿈을 방지합니다.
\r
줄의 시작 부분으로 돌아가고(개행 - 없이 \n
) 이전에 사용한 '\b'보다 단일 문자로 돌아가는 작업이 더 잘 수행됩니다. 이는 숫자가 두 개 이상인 경우 불편합니다. rozcietrzewiacz님, 감사합니다.
답변2
이런 것을 찾고 계십니까?
for i in {1..10}; do
printf '\r%2d' $i
sleep 1
done
printf '\n'