Читаем Linux и UNIX: программирование в shell. Руководство разработчика. полностью

Клавише [Esc] соответствует код \033. Символ \ указывает команде echo, что далее следует восьмеричное значение. Например, для вывода на экран символа @ можно применить команду:

echo "@"

Или же для вывода на экран этого символа можно воспользоваться восьмеричным значением символа, которое равно 100.

echo -e "\100"

Для System V примените команду:

echo "\100"

Результат будет аналогичным.

Команда clear очищает экран и устанавливает курсор в верхнем левом углу экрана. Это положение курсора обычно называется home. При работе с терминалами, относящимися к семейству VT, эту процедуру выполняет последовательность esc [2J. Данную последовательность можно отправить с помощью конструкции echo.

System V echo "\033[2J"

LINUX/BSD echo -e "\033[2J"

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

echo ' hit the key then [?25h'

Здесь даны указания о том, что следует воспользоваться комбинацией клавиш [Ctrl+V], затем нажать клавишу [Esc] и после этого ввести символы [?25h.

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

функцию либо перевернуть пару страниц и сразу ознакомиться с результатами выполнения сценария.

$ pg cursor

#!/bin/sh

#отображение|сокрытие курсора

#отображает или скрывает курсор при работе с терминалами vt100, 200, 220, meth220

#замечание: функционирует при нормальном ttу–соединении при использовании

#некоторых win–эмуляций

#проверьте TERM env для вашего типа!

_ОРТ=$1

if [ $# -ne 1 ]; then

echo "Usage: `basename $0` cursor [on | off]"

exit 1

fi

case "$_OPT" in

on|ON|On)

# отображение курсора

ON=`echo ^[[?25h`

echo $ON

;;

off|OFF|Off)

# сокрытие курсора

OFF=`'echo ^[ [?251`

echo $OFF

;;

*)echo "Usage: cursor on | off" exit 1

;;

esac

21.2.5. Изменение положения курсора

Команду tput также можно применять для отображения курсора в произвольном месте экрана. При этом используется следующий формат:

cup r c

где r — это номер ряда (строки) в нижней части экрана, а с — номер столбца на экране.

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

xу()

(

#_R= row, _C=column

_R=$1

_C=$2

tput cup $_R $_C

}

clear

xy 1 5

echo -n "Enter your name :"

read NAME

xy 2 5

echo -n "Enter your age :"

read AGE

Конечно, желательно передавать строку для отображения; ниже приводится небольшая модификация этого сценария.

ху()

{

#_R= row, _C=column

_R-$1

_TEXT=$3

tput cup $_R $_C

echo -n $_TEXT

}

Сценарий можно вызвать следующим образом:

xy 5 10 "Enter your password :" read CODE

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

Перейти на страницу:

Похожие книги

Библия БДСМ. Полное руководство
Библия БДСМ. Полное руководство

Первое исчерпывающее пособие по БДСМ. Уникальный иллюстрированный гид для тех, кому просто любопытно, и для тех, кто уже в Теме. В этой книге известные педагоги и профессионалы ответили на все важные вопросы и раскрыли все интересующие вас темы: основные принципы, ролевые игры, господство, подчинение, фистинг, садизм, мазохизм, связывание, физическое воздействие, тантра необычного секса и многое другое. Если вы хоть раз задумывались о БДСМ, значит, эта книга то, что вам нужно. Она способна обучить, вдохновить и бросить вызов даже опытным игрокам. Не бойтесь экспериментировать, и добро пожаловать в мир сексуальных приключений!

Тристан Таормино , Литагент «5 редакция»

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / Руководства / Дом и досуг / Образовательная литература / Словари и Энциклопедии
Путь менеджера от новичка до гуру
Путь менеджера от новичка до гуру

«Путь менеджера» – это сборник лучших материалов online-сообщества (learning community) менеджеров E-xecutive за пять лет (2001–2005), которые впервые публикуются offline. Возможно, это книга с самым большим количеством авторов: 20 сотрудников E-xecutive и более 200 участников Сообщества писали, выбирали и редактировали материалы.Книга представляет собой «карту местности» для менеджера, стремящегося найти кратчайший путь к успеху, на которой отображены открытия лучших «картографов» – всемирно признанных бизнес-гуру и успешных российских топ-менеджеров. Эта книга о том, чем в действительности живут менеджеры, о чем не пишут в учебниках, и предназначается она для тех, кто стремится не только к карьерному успеху, но и к настоящей эффективности, личностному и профессиональному развитию.

Сообщество менеджеров E-xecutive

Руководства / Словари и Энциклопедии