Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционная система UNIX.doc
Скачиваний:
94
Добавлен:
01.05.2014
Размер:
1.67 Mб
Скачать

10.27.1. Ограничения

При работе с awk вы должны придерживаться следующих ограничений:

100

полей

2500

символов во вводной записи

2500

символов в выводной записи

1024

символов в индивидуальном поле

1024

символов в строке printf

400

символов в строке, заключенной в кавычки

400

символов в классе символов

15

открытых файлов

1

канал

10.27.2. Инициализация, сравнение и тип приведения

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

var = expr

то тип переменной определяется выражением. В арифметических выражениях тип - цифровой, в конкатенации - строковый, и т.д. Если назначение является простым копированием:

v1 = v2

то типом v1 становится тип v2. При сравнении, если оба операнда являются цифровыми, то производится цифровое сравнение. В противном случае, операнды рассматриваются как строковые и сравнение производится над строками. Тип любого выражения может быть приведен к цифровому таким образом:

expr + 0

и к строковому типу:

expr ""

(это конкатенация с пустой строкой)

Инициализированные переменные имеют цифровое значение 0, а строковые - значение "". Соответственно, если x проинициализировано, то оператор

if (x) ...

имеет значение "ложь", а

if (!x) ...

if (x == 0) ...

if (x == "") ...

все являются истиной, но

if (x == "0") ...

является ложью.

Тип поля определяется по контексту. Например:

$1++

означает, что $1 будет цифровым, и

$1 = $1 "," $2

означает, что и $1 и $2 являются строковыми. Приведение к типу выполняется при необходимости.

Если по контексту тип не может быть определен, например:

if ($1 == $2) ...

тип поля определяется при вводе.

Поля, которые являются нулевыми, имеют строки со значением "", они не являются цифровыми.

Определения типов для элементов массива, созданных split(), аналогичны определению типов для полей.

Так, если arr[i] не существует, то :

if (arr[i] == "") ...

приводит к тому, что он появляется со значением "".

Приложение 1. Файловая система unix

Файловая система UNIX имеет иерархическую структуру; чаще всего она описывается в виде дерева. Вершина этого дерева - это справочник root. Он обозначается с помощью /. Все другие справочники и файлы берут свое начало из справочника root.

Один из путей из root ведет в ваш собственный справочник. Вы можете организовывать и хранить информацию в вашей собственной иерархии справочников и файлов.

Другие пути ведут к системным справочникам и доступны всем пользователям. Чтобы получить перечень всех справочников и файлов в справочнике root, введите командную строку:

ls -l /<CR>

Чтобы перемещаться по файловой структуре, вы можете использовать имена путей. Например, вы можете переместиться в справочник /usr/bin, если введете следующую командную строку:

cd /usr/bin<CR>

Справочники системы unix

/ -

справочник root;

/stand -

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

/dev -

содержит специальные файлы, которые представляют периферийные устройства, такие как: console - консоль lp - построчно-печатающее устройство term/* - пользовательские терминалы dsk/* - диски

/etc -

содержит файлы конфигурации и базы данных;

/home -

собственный справочник пользователя;

/tmp -

содержит временные файлы, например, буферы для редактирования файла;

/var -

поддерево для изменяемых файлов (например, файлы регистрации);

/usr -

содержит другие справочники, например, bin, lib;

/usr/bin -

содержит исполняемые программы, включая следующие:

cat grep

date mkdir

login who

/usr/lib -

содержит библиотеки для программ и языков программирования.

Соседние файлы в предмете Операционные системы