А вот ещё микрохаутушечка для линуксоида-любителя.
Есть у меня скрипт, который делает некую полезную работу, поделённую на пару десятков этапов. Каждый этап может длиться несколько минут или часов. Я запускаю скрипт в терминале, он цветной строчкой с таймстемпом оповещает о начале каждого этапа, типа:[12:23:22] [4/21] Updating bla bla ....
Но потом эта строчка уползает вверх, и, посмотрев на терминал в произвольный момент времени, непонятно, что там происходит.
Меж тем у терминала (иксового) есть некий текст, написанный в рамке X окна. Почему бы туда не написать нам ту же строчку, что мы выводим на экран. Аналогично поступает, например, emerge из Gentoo.
Читаем мой любимый console_codes(4)
и выясняем, что для этого нужно. Пишем простой код на шелле (он же показывает разноцветности в терминале):
#!/bin/bash # Example of setting title and using colors in terminal. # By Kir Kolyshkin <kir AT sacred DOT ru> BF='\033[1m' # Bold NF='\033[0m' # Normal GF='\033[32m' # Green SET_TITLE='\033]0;' # Set title ST='\033\\' # ECMA-48 string terminator # Log to console and set terminal title as well log() { local d=$(date +%H:%M:%S) echo -e [${GF}${d}${NF}] ${BF}$*${NF} echo -ne ${SET_TITLE}[$d] $*${ST} } # Usage example MAX=10 for N in $(seq 1 $MAX); do log "Counting $N/$MAX..." sleep 0.7 done