
- •Условная выборка строк
- •Составные шаблоны
- •Примеры.
- •А) Программа
- •Б) Программа
- •Пример.
- •Операторы в awk
- •При выполнении более, чем одного оператора в оператор_1 или в оператор_2 необходимо их
- •Б) Цикл for аналогичен в языке Си, но отличается от цикла в языке
- •В) Цикл while
- •Е) Опереатор next вызывает чтение следующей входной строки и сопоставление ее с шаблонами
- •Пример:
- •Дополнительные переменные
- •Пример.
- •FLENGTH - хранит значение длины строки сопоставления, производимого
- •ENVIRON - массив, содержащий значения текущих переменных окружения.
- •CONVFMT - формат преобразования чисел. Ее значение по умолчанию - %6g.
- •Если она определена, то считается, что
- •Значения переменной FIELDWIDTHS – числа, разделенные пробелами или табуляцией, поэтому поля не обязательно
- •Проблема в следующем. Как отделить признак “пола” от фамилии?
- •Здесь 1 – первое поле длиною 1;
- •IGNORECASE - управляет зависимостью регулярного выражения от регистра.
- •Взаимодействие с интерпретатором
- •Пример 1.
- •Способ 2.
- •Язык awk может явно предоставлять возможность выбора полей. Hаша задача - передать номер
- •Пример 3.
- •Здесь шаблон BEGIN используется для засылки значения в переменную N, чтобы не засорять
- •Здесь нет никаких возможностей
- •Функции
- •Список аргументов идет через запятые. Это переменные, что используются внутри функции.
- •Параметры функции передаются по значению, то есть действительные
- •Результат будет: 5 5
- •Локальные переменные
- •Глобальные переменные
- •Обращение к функциям
- •Для этого необходимо выполнить: system (value)
- •Тогда программа на awk будет иметь вид:
- •CGI программирование с применением shell и awk
- ••методы:
- •Пример 1.
- •echo “It is now `date`”
- •Пример 2.
- •Здесь:
- •Примеры:
- •Для метода GET наиболее важна переменная QUERY_STRING, содержащая в
- •Для распознавания метода передачи
- •Но в силу того, что браузер передает информацию из формы в закодированном виде,
- •Пример:
Тогда программа на awk будет иметь вид:
awk ‘{system (“cat” $1)}’ file.me > file.your
В этом случае создается файл file.your,
который будет содержать полную копию всех трех файлов: file.1, file.2, file.3.
41
CGI программирование с применением shell и awk
Для изложения этого материала необходимо повторить материал по:
a.протокол HTTP:
запрос;
ответ;
перенаправление.
b.интерфейс CGI:
42
•методы:
|
GET |
|
POST |
•action:
адрес CGI скрипта.
Структура CGI скрипта:
–заголовки HTTP протокола;
–пустая строка;
–тело запроса/ответа скрипта.
43
Пример 1.
Вывести значения некоторых переменных окружения Web-сервера.
Файл ENV-sh1.cgi
#!/bin/bash/
#Указание для web-сервера, где находится
#shell-интерпретатор
echo “Content-type: text/html”
#Вывод заголовка о типе ответа echo “”
#Вывод пустой строки – разделитель
#заголовков и тела ответа. Это очень
# важная строка. |
44 |
|
echo “It is now `date`”
# вывод текщей даты
echo “QUERY_STRING = $QUERY_STRING” echo “REMOTE_HOST = $REMOTE_HOST”
echo “Your IP addresses is $REMOTE_ADDR”
exit 0
Для этой программы необходимо знать названия этих переменных окружения.
45
Пример 2.
Вывести значения всех переменных окружения, включая переменные Web- сервера.
Файл ENV-sh2.cgi
#!/bin/bash/
echo “Content-type: text/html” echo “”
echo “<html><head><title>” echo “CGI test on shell UNIX” echo “</title></head><body>”
echo “<h1> CGI test on UNIX shell</h1>”
46
for i in `env`
#Операция `env` выдает значение
#команды env
do
echo “$i<br>” done
echo “</body></html>” exit 0
47
|
Команда env: |
• |
выдает значения текущей рабочей среды |
|
окружения по одной переменной в каждой |
|
строке в формате |
|
Имя_переменной=Значение_переменной |
• |
модифицирует среду для выполнения |
|
команд, не влияя на текущее окружение. |
В этом случае синтаксис команды env следующий:
env – Имя=Значение Команда
48
Здесь:
опция “-“ ограничивает рабочую среду только теми переменными, что есть в списке формата Имя=Значение.
Без опции “-“ команда env добавляет этот список в рабочую среду.
Имя=Значение – список установок для выполняемой команды.
Команда – имя команды и ее аргументов для выполнения в указанной среде.
49
Примеры:
env - выводит текущее окружение в формате Имя=Значение
env PATH=/usr/pmi sh - запускает новый командный процессор с исходным каталогом /usr/pmi/
50