-->

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

На нашем литературном портале можно бесплатно читать книгу Linux и UNIX: программирование в shell. Руководство разработчика, Тейнсли Дэвид-- . Жанр: Прочая компьютерная литература. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Linux и UNIX: программирование в shell. Руководство разработчика
Название: Linux и UNIX: программирование в shell. Руководство разработчика
Дата добавления: 16 январь 2020
Количество просмотров: 449
Читать онлайн

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

Linux и UNIX: программирование в shell. Руководство разработчика - читать бесплатно онлайн , автор Тейнсли Дэвид

Данная книга является практическим руководством по программированию интерпретатора Bourne shell -cтандартного командного интерпретатора в UNIX, полностью совместимого с интерпретатором BASH shell в Linux. Книга предназначена для начинающих и опытных программистов и содержит множество полезных примеров, советов и подсказок. С ее помощью читатель сможет быстро научиться создавать shell–сценарии для реальных задач и ситуаций, возникающих в большинстве систем UNIX и Linux.

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

1 ... 76 77 78 79 80 81 82 83 84 ... 114 ВПЕРЕД
Перейти на страницу:

COLS=`tput cols`

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

xy $_ROW $_NEW_COL

echo $_STR

}

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

centertxt 15 "THE MAIN EVENT"

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

centertxt 15 $1

21.2.7. Определение атрибутов терминала

Рассмотрим сценарий, в котором с помощью команды tput производится обращение к базе данных terminfo. С помощью некоторых команд tput отображаются управляющие коды терминала.

$ pg termput

#!/bin/sh

#termput

#инициируйте tput для терминала

tput init

clear

echo "tput <> terminfo"

infocmp -l $TERM | while read LINE

do

case $LINE in

bel*) echo "$LINE: sound the bell" ;;

blink*) echo "$LINE: begin blinking mode";;

bold*) echo "$LINE: make it bold" ;;

el*) echo "$LINE: clear to end of line" ;;

civis*) echo "$LINE: turn cursor off";;

cnorm*) echo "$LINE: turn cursor on ";;

clear*) echo "$LINE: clear the screen" ;;

kcuul*) echo "$LINE: up arrow ";;

kcubl*) echo "$LINE: left arrow ";;

kcufl*) echo "$LINE: right arrow ";;

kcudl*) echo "$LINE: down arrow ";;

esac done

Команда infocmp извлекает из файла базы данных terminfo информацию о терминале. Если нужно просмотреть файл, содержащий сведения о настройках терминала, выполните команду:

$ infocmp $TERM

Ниже с помощью сценария termput отображается поток вывода для некоторого терминала:

$ termput

tput <> terminfo

bel=^G,: sound the bell

blink=E[5m, : begin blinking mode

bold=E[1m,: make it bold

civis=E[?251,: turn cursor off

clear=E[HE[J,: clear the screen cnorm

‑E[?25h,; turn cursor on

el=E[K,: clear to end of line

ell=E[lK,: clear to end of line

kcubl=E[D,: left arrow

kcudl=E[B,: down arrow

kcufl=E[C,: right arrow

kcuul=E[A,: up arrow

21.2.8. Применение функциональных клавиш при работе со сценариями

С помощью команды cat можно обращаться к специальным клавишам ([F1], [стрелка_вверх] и т. д.). Введите команду cat -v, затем нажмите любую управляющую клавишу и просмотрите, что отобразится в нижней строке. Когда просмотр завершится, нажмите комбинацию клавиш [Ctrl+C].

В следующем примере вызывается команда cat и используются клавиши [F1] (^[OP), [F2](^[OQ) и [стрелка_вверх](^[[A).

$ cat -v

^[ОР

^[OQ

^[[А

<CTRL‑C>

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

В приведенном ниже сценарии распознаются клавиши [F1], [F2], а также клавиши стрелок. Пользовательские значения могут быть иными, поэтому выполните команду cat, чтобы уточнить, какие значения соответствуют управляющим клавишам терминала.

$ pg control_keys

#!/bin/sh

#управляющие_клавиши

#для вставки примените последовательность '<CTRL‑V><ESCAPE>sequence'

uparrowkey='^[[А'

downarrowkey='^[[В'

leftarrowkey='^[[D'

rightarrowkey='^[[С'

f1key='^[OP'

f2key='^[OQ'

echo -n " Press a control key then hit return"

read KEY

case $KEY in

$uparrowkey) echo "UP arrow";;

$downarrowkey) echo "DOWN arrow";;

$leftarrowkey) echo "LEFT arrow";;

$rightarrowkey) echo "RIGHT arrow";;

$f1key) echo "F1 key";;

$f2key) echo "F2 key";;

*) echo "unknown key $key";;

esac

21.2.9. Применение различных цветов

Благодаря применению цвета можно придать экрану, где. отображается поток ввода, более привлекательный вид. При работе с цветами используется стандарт ANSI. Однако не все цвета можно применить во всех системах. Предлагаем перечень наиболее часто употребляемых цветов.

Цвета переднего плана

Значение

Цвет

30

черный

31

красный

32

зеленый

33

желтый (или коричневый)

34

голубой

35

пурпурный

36

синий (циан)

37

белый (или серый)

Фоновые цвета

Значение

Цвет

40

черный

41

красный

42

зеленый

43

желтый (или коричневый)

44

голубой

45

пурпурный

46

синий (циан)

47

белый (или серый)

Для отображения цветов переднего плана и фоновых цветов применяется следующий формат:

<ESCAPE> [значение_фона; значение переднего плана m

21.2.10. Генерирование цветов

Для генерирования цвета управляющие символы встраиваются в конструкцию echo. Данный метод применяется при работе с цветным терминалом и произвольной системой. Как и в случае с управляющими символами, цвета можно генерировать с помощью escape–последовательностей, встраиваемых в конструкцию echo. Для создания черного фона с передним планом зеленого цвета воспользуйтесь командой:

Linux/BSD: echo -e "33[40;32m"

System V: echo "33[40;32m"

Обобщенный метод: echo "<CTRL‑V><ESCAPE>[40;32m"

При использовании обобщенного метода, т. е. комбинации клавиш [Ctrl+V], нажмите клавишу [Esc], затем введите символы [40;32m. Обобщенный метод и применяется далее в книге.

Возможно, лучше поместить конструкции echo, отвечающие за воспроизведение цвета, в конструкцию case, а затем оформить все это в виде функции. Ниже, приводится функция цвета case.

colour ()

(

# формат цвет_фона; цвет_переднего_планаm

case $1 in

black_green)

echo '^[[40;32m';;

black_yellow)

echo '^[[40;33m';;

black_white)

echo '^[[40;37m';;

black_cyan)

echo '^[[40;36m';;

red_yellow)

echo '^[[41;33m';;

black_blue)

echo '^[[40;34m';;

esac

}

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

colour red_yellow

Для использования цветов в сценариях выполните следующие действия:

colour whatever echo something

# измените на другой цвет

colour whatever

echo something

Обычно по умолчанию в качестве цветов экрана используются черный и белый. Рассмотрим, как изменить эту установку, чтобы фоновым цветом был черный, а цветом переднего плана — зеленый. С этой целью в файл .profile достаточно добавить конструкцию echo, которая создает требуемую комбинацию.

Ниже приводится пример кода для управления экраном.

$ pg colour_scr

#!/bin/sh

# colour_scr

tput init

MYDATE=`date +%D`

colour ()

{

# формат цвет_фона; цвет_лереднего_планаm

case $1 in

black_green)

echo '^[[40;32m' ;;

black_yellow)

echo '^[[40;33m' ;;

1 ... 76 77 78 79 80 81 82 83 84 ... 114 ВПЕРЕД
Перейти на страницу:
Комментариев (0)
название