whiptail Ubuntu 및 기타 여러 배포판에 사전 설치되어 있으며 전체 화면 (아직 터미널 기반) 진행 요소를 표시합니다.
dialog은의 수퍼 세트이므로이 whiptail예제는 둘 다 동일하게 작동합니다. 고급 UI 요소를 제공하므로 파일 선택기 및 양식과 같은 사용자 상호 작용을 찾고 있다면 유용 할 수 있지만 많은 시스템에 사전 설치되어 있지 않다는 단점이 있습니다.


for i in $(seq 1 100)
do
sleep 0.1
echo $i
done | whiptail --title 'Test script' --gauge 'Running...' 6 60 0
스크립트 출력은 백분율로 해석되므로 그에 따라 출력을 조정해야 할 수도 있습니다.
Whiptail and Dialog를 사용하면 런타임에 다소 복잡한 구문을 통해 텍스트를 수정할 수 있습니다.
phases=(
'Locating Jebediah Kerman...'
'Motivating Kerbals...'
'Treating Kessler Syndrome...'
'Recruiting Kerbals...'
)
for i in $(seq 1 100); do
sleep 0.1
if [ $i -eq 100 ]; then
echo -e "XXX\n100\nDone!\nXXX"
elif [ $(($i % 25)) -eq 0 ]; then
let "phase = $i / 25"
echo -e "XXX\n$i\n${phases[phase]}\nXXX"
else
echo $i
fi
done | whiptail --title 'Kerbal Space Program' --gauge "${phases[0]}" 6 60 0
pv파일 또는 스트림을 통해 파이프되는 진행 상황을 보여줍니다. 그러나 루프와 같은 사용자 지정 작업의 진행률을 표시하는 데 (쉽게?) 사용할 수 없습니다. 스트림을 위해 특별히 설계되었습니다.
$ head -c 1G < /dev/urandom | pv -s 1G > /dev/null
277MB 0:00:16 [17.4MB/s] [========> ] 27% ETA 0:00:43
pv유용한 실제 예 :
# progress while importing a DB dump
pv mybigfile.sql | mysql -uroot -p dbname
# importing straight from a remote server
ssh user@server 'cat mybigfile.sql.gz' | pv | gzip -cd | mysql -uroot -p dbname
# taking a snapshot of a btrfs partition
btrfs send /snapshots/$date | pv | btrfs receive /mnt/backup/root
pv또는 스타일로 한 줄 진행률 표시 줄을 제공하는 명령을 wget모르지만 다른 사람들이 공유 한 것처럼 해당 기능을 추가하는 간단한 Bash / Perl / sed 스크립트가 많이 있습니다.