Чтение онлайн

ЖАНРЫ

Командная строка Linux
Шрифт:

:set hlsearch включает подсветку результатов поиска. Например, если выполнить поиск слова echo, с этой настройкой редактор выделит все вхождения искомого слова.

:set tabstop=4 определяет число колонок (знакомест), занимаемых символом табуляции. По умолчанию один символ табуляции занимает восемь знакомест. Присвоив этому параметру значение 4 (которое широко используется практикующими программистами), вам проще будет уместить длинные строки на экране.

:set autoindent включает

автоматическое оформление отступов. Этот параметр заставляет vim добавлять в новую строку отступ, как в строке выше. Это ускоряет ввод многих видов программных конструкций. Чтобы прекратить автоматическое выравнивание, достаточно нажать комбинацию CTRL+D.

Эти изменения можно сделать постоянными, добавив описанные команды (без начального символа двоеточия) в файл ~/.vimrc.

Заключительное замечание

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

25. Начало проекта

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

Далее мы напишем генератор отчетов. Он будет выводить разнообразную информацию о системе и ее состоянии в формате HTML, благодаря чему ее можно будет просматривать в веб-браузере.

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

Этап первый: минимальный документ

Прежде всего, определим, как выглядит формат правильно сформированного HTML-документа. Он имеет следующий вид:

<HTML>

<HEAD>

<TITLE>Заголовок страницы</TITLE>

</HEAD>

<BODY>

Тело страницы.

</BODY>

</HTML>

Если ввести этот текст в текстовом редакторе и сохранить в файле с именем foo.html, мы сможем открыть его, введя следующий адрес URL в Firefox: file:///home/username/foo.html.

На первом этапе создадим программу, которая будет выводить эту разметку HTML в стандартный вывод. Написать такую программу очень просто. Откройте текстовый редактор и создайте файл с именем ~/bin/sys_info_page:

[me@linuxbox ~]$ vim ~/bin/sys_info_page

А

затем введите следующую программу:

#!/bin/bash

# Программа вывода страницы с информацией о системе

echo "<HTML>"

echo " <HEAD>"

echo " <TITLE>Page Title</TITLE>"

echo " </HEAD>"

echo " <BODY>"

echo " Page body."

echo " </BODY>"

echo "</HTML>"

Наша первая версия содержит строку-шебанг (shebang), комментарий (можно только приветствовать) и последовательность команд echo, по одной для вывода каждой строки. После сохранения файла сделайте его выполняемым и попробуйте запустить:

[me@linuxbox ~]$ chmod 755 ~/bin/sys_info_page

[me@linuxbox ~]$ sys_info_page

После запуска на экране должен появиться текст HTML-документа, потому что команды echo в сценарии посылают свои строки в стандартный вывод. Запустите программу снова и перенаправьте вывод программы в файл sys_info_page.html, чтобы затем посмотреть результат в веб-браузере:

[me@linuxbox ~]$ sys_info_page > sys_info_page.html

[me@linuxbox ~]$ firefox sys_info_page.html

Пока все идет неплохо.

Разрабатывая программы, всегда следует помнить о простоте и ясности. Сопровождение дается проще, когда программа легко читается и доступна для понимания, не говоря уже о том, что программу легче писать, когда есть возможность уменьшить объем ручного ввода. Текущая версия программы работает замечательно, но ее можно упростить. Если объединить все команды echo в одну, это определенно упростит в будущем добавление новых строк в вывод программы. Поэтому изменим программу, как показано ниже:

#!/bin/bash

# Программа вывода страницы с информацией о системе

echo "<HTML>

<HEAD>

<TITLE>Page Title</TITLE>

</HEAD>

<BODY>

Page body.

</BODY>

</HTML>"

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

[me@linuxbox ~]$ echo "<HTML>

> <HEAD>

> <TITLE>Page Title</TITLE>

> </HEAD>

> <BODY>

> Page body.

> </BODY>

> </HTML>"

Символ > в начале каждой строки — это приглашение к вводу командной оболочки, определяемое ее переменной PS2. Оно появляется всякий раз, когда происходит ввод многострочной инструкции. Эта особенность пока мало понятна, но потом, когда мы познакомимся с многострочными программными инструкциями, ее преимущества станут очевидными.

Поделиться с друзьями: