Bash에서 카운터 표시 및 업데이트

Bash에서 카운터 표시 및 업데이트

내 생각엔 다음과 같다: (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'

관련 정보