LINUX.ORG.RU

Думаю, что тут ncurses или slang уже нужен.

adriano32 ★★★
()

echo -n rpm rulezz; sleep 1; echo -ne '\r'; echo -n deb rulezz

uzbl
()

глупости про управляющие символы не слушай, tput позволяет напрямую ставить курсор в нужную позицию

zolden ★★★★★
()
Ответ на: комментарий от zolden

> глупости про управляющие символы не слушай, tput позволяет напрямую ставить курсор в нужную позицию

сам понял, что сказал?

ananas ★★★★★
()
Ответ на: комментарий от ananas

Что спросить-то хотел, мультивитаминный ты мой?
На случай если ты сам не понял или забыл, переведу, для такого уважаемого человека мне не трудно:
С помощью tput можно изменить позицию курсора на соответствующем устройстве.
Используя опцию cup (позиция курсора – cursor position) команды tput, можно перемещать курсор в любую строку и столбец устройства с координатами X или Y. Координатами верхней левой точки устройства являются 0,0.
бла-бла-бла. бла


Упражнения с эхами, принтами и прочими полными перерисовками экрана тут тоже подойдут, но это как-то некомильфо

zolden ★★★★★
()
Ответ на: комментарий от zolden

переведи, будь другом

(victor@desktop)~ $> tput cup 10 20 | hexdump -C                           [sh]
00000000  1b 5b 31 31 3b 32 31 48                           |.[11;21H|
00000008
(victor@desktop)~ $>                                                       [sh]

и еще раз повторю - man console_codes

ananas ★★★★★
()
Ответ на: комментарий от ananas

ок, дружок, теперь я понял твой намёк.

давай утрируем:
ТС спросил как ему вывести сто раз строку print1
Есть вариант «for i in {1..100};echo print1»
Есть вариант «echo print1;echo print1;echo print1;echo print1;echo print1;echo print1;echo print1...echo print1»

Бесспорно, первый вариант основан на втором, второй более низкоуровневый - в нём мы видим как всё происходит на самом деле
Ты догадываешься кто есть кто в этой истории и к какому варианту применимо определение глупость?

zolden ★★★★★
()
Ответ на: ок, дружок, теперь я понял твой намёк. от zolden

хинт: echo - внутренняя команда shell-а, tput - внешняя. вот и думай, что лучше использовать.

tput оправдан только в случае, если скрипт будет использоваться в том числе и на совершенно экзотических типах терминалов. очень сомневаюсь, что это случай тс-а

ananas ★★★★★
()
Ответ на: комментарий от zolden

>tput позволяет напрямую ставить курсор в нужную позицию

Если у тебя не curses-like интерфейс, а какой-нибудь прогрессбар, который не должен перерисовывать всю консоль сразу, то tput неудобен и излишен.

anonymous
()

Есть какой-то спец-символ (типа \n), какой не помню. Он затирает строку до конца. Проблемы будут если вывод не вмещается в строку. Поэтому я забил на такие выкрутасы.

anonymous
()
Ответ на: ок, дружок, теперь я понял твой намёк. от zolden

> Ты догадываешься кто есть кто в этой истории и к какому варианту применимо определение глупость?

как правильно переходить улицу? толпой!

\r имхо понадежней — на случай, например, если у нас /etc/terminfo нет (восстановление убитой системы), либо, допустим, мы приконнектились по ссш, и там не знают про наш терминал

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от ananas

а как без tput определить ширину экрана (а еще лучше — и моменты, когда он ресайзится), более-менее переносимо, а не привязываясь к чисто линуксовому терминалу?

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

а если нужно отлавливать момент изменения размера, то как-то так

function resize () {
  echo "get it"
}

trap resize SIGWINCH
ananas ★★★★★
()

разрешаю
echo -ne «\e[s» && echo foo && sleep 1 && echo -ne «\e[u» && echo bar

megabaks ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.