다음 명령을 사용하여 wigtail --gauge의 진행 상황을 변경할 수 있다는 것을 알고 있습니다.
{
for ((i = 0 ; i <= 100 ; i+=20)); do
sleep 1
echo $i
done
} | whiptail --gauge "Please wait while installing" 6 60 0
하지만 채찍꼬리 상자의 텍스트를 편집/수정할 수 있는지 알고 싶습니다. 따라서 텍스트를 Please wait while installing
다른 것으로 변경하세요.
현재 해결 방법은 새 채찍 상자를 여는 것인데, 이전 상자가 닫히는 것과 새 상자가 열리는 사이에 눈에 띄게 깜박이는 현상이 있습니다. 채찍꼬리 상자의 텍스트를 업데이트할 수 없는 경우 깜박임을 줄이거나 제거할 수 있는 방법이 있습니까?
답변1
이 시도:
#!/bin/bash
msgs=( "Downloading" "Verifying" "Unpacking" "Almost Done" "Done" )
for i in {1..5}; do
sleep 1
echo XXX
echo $(( i * 20 ))
echo ${msgs[i-1]}
echo XXX
done |whiptail --gauge "Please wait while installing" 6 60 0
답변2
깜박임은 (a) 터미널에서 대체/일반 화면으로 전환하고 (b) 디스플레이를 지우는 데서 발생합니다.
일반/대체 화면 간 전환을 위한 제어 순서가 없는 터미널 설명을 선택하여 첫 번째 부분을 제거할 수 있습니다. 일반적으로 이는 터미널 설명에 있는 및 기능이므로 smcup
...rmcup
infocmp >foo
vi
...remove the assignments to `rmcup` and `smcup`
tic foo
...with ncurses, that likely creates an entry in `$HOME/.terminfo`
dialog
이 문제는 이러한 기능(즉, 대체 화면에 대해 알려진 바가 없음 --keep-tite
) 을 선택적으로 억제함으로써 처리됩니다 .whiptail
추가 자료: