21.2.6. Центрирование отображаемого текста

21.2.6. Центрирование отображаемого текста

При центрировании текста на экране нужно быть предельно внимательным. С помощью команды tput необходимо получить столбцы, затем получить значение для длины строки, исключить это значение из столбцов tput и разделить ответ на две части. В дальнейшем нужно только указать номер строки, где отобразится данная строка.

Ниже приводится часть кода, который выполняет эту задачу. Чтобы просмотреть строки файла и центрировать на экране весь текст, достаточно выполнить небольшое изменение.

Введите символы, нажмите клавишу [Return], и текст отобразится в середине экрана начиная со строки 10.

echo -n "input string :"

read STR

# быстрый способ вычисления длины строки

LEN=`echo $STR | wc -с`

COLS=`tput cols`

NEW_COL=`expr ($COLS - $LEN ) / 2`

xy 10 $NEW_COL

echo $STR

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

использовать текст и номер строки. Функция будет иметь следующий вид:

centertxt() {

_ROW=$1 _STR=$2

# быстрый способ получения длины строки

LEN=`echo $_STR | wc -c`

COLS=`tput cols`

_NEW_COL=`expr {$COLS - $LEN ) / 2`

xy $_ROW $_NEW_COL

echo $_STR

}

Чтобы вызвать функцию, следует применить команду:

centertxt 15 "THE MAIN EVENT"

или аналогичную команду, но с использованием строки в качестве аргумента:

centertxt 15 $1