2013-11-06 3 views
0

Я хочу создать небольшую анимацию в главном окне терминала, используя printf. До сих пор я понял, как заменить последнюю строку сУдалить последние две строки stdout с помощью c shell?

#!/bin/csh -f   
printf "text1" 
printf "text2" 
sleep 1 
printf "\r replaced text2" 

Как заменить обе строки?

printf "\r\r replace text1" 

не работает ....

ответ

2

Вы должны использовать возможности в cuu1 Terminfo для перемещения курсора вверх.

printf "foobar" 
tput cuu1 
printf "baz" 
+0

Обратите внимание, что 'tput cuu1' переместит курсор на одну строку, но останется в том же столбце. В зависимости от того, что вы делаете, вы можете напечатать другой '' \ r "' или, возможно, использовать любой код 'tput', который перемещает курсор в начало строки. Также обратите внимание, что если новый текст короче старого, он не заменит его: 'printf 'original \ rNEW \ n" 'prints' NEWGinal'. –

0

Ответ Игнасиос привел меня на правильный путь! Благодаря!! Тем не менее:

tput cuu N 

устанавливает курсор N линии назад.

Смежные вопросы