k001
k001
:...

April 2032
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

k001 [userpic]
Set X terminal title

А вот ещё микрохаутушечка для линуксоида-любителя.

Есть у меня скрипт, который делает некую полезную работу, поделённую на пару десятков этапов. Каждый этап может длиться несколько минут или часов. Я запускаю скрипт в терминале, он цветной строчкой с таймстемпом оповещает о начале каждого этапа, типа:

[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

Tags: ,
Comments

Спасибо за совет.