\ 033 방법이 작동하지 않았습니다. \ r 메서드는 작동하지만 실제로는 아무것도 지우지 않고 커서를 줄의 시작 부분에 놓습니다. 따라서 새 문자열이 이전 문자열보다 짧으면 줄 끝에 남은 텍스트를 볼 수 있습니다. 결국 tput은 가장 좋은 방법이었습니다. 커서 외에도 다른 용도로 사용되며 많은 Linux 및 BSD 배포판에 사전 설치되어 있으므로 대부분의 bash 사용자가 사용할 수 있습니다.
#/bin/bash
tput sc # save cursor
printf "Something that I made up for this string"
sleep 1
tput rc;tput el # rc = restore cursor, el = erase to end of line
printf "Another message for testing"
sleep 1
tput rc;tput el
printf "Yet another one"
sleep 1
tput rc;tput el
다음은 재생할 작은 카운트 다운 스크립트입니다.
#!/bin/bash
timeout () {
tput sc
time=$1; while [ $time -ge 0 ]; do
tput rc; tput el
printf "$2" $time
((time--))
sleep 1
done
tput rc; tput ed;
}
timeout 10 "Self-destructing in %s"
for i in {1..100000}; do echo -en "\r$i"; done
서열 호출 :-) 피하기 위해