- •1 Системы реального времени. Основные понятия и определения
- •2 Программирование в ос семейства unix (linux)
- •2.1 Программирование на shell. Использование командных файлов
- •Процедура языка shell
- •Структура команд
- •В таблице 2.1 представлены некоторые средства группировки команд, которые могут быть использованы при создании командных файлов на shell.
- •Перенаправление данных
- •Shell-переменные
- •Условный оператор if
- •Команда test
- •Структурные операторы shell Оператор цикла for
- •Оператор цикла while
- •Оператор цикла until
- •Оператор выбора case
- •Отладка процедур языка shell
- •Практическое задание
- •2.2 Программирование в ос семейства unix с использованием awk»
- •Практическое задание «Программирование с использованием awk»
- •2.3 Программирование в ос с использованием си»
- •Системный вызов ореn
- •Системный вызов сrеаt
- •Системный вызов read
- •Системный вызов write
- •Системный вызов сlose
- •Практическое задание
- •Системный вызов fork
- •Системный вызов wait
- •Системный вызов exit
- •Системные вызовы ехес1, ехес1е, ехесv и ехесvе
- •Системный вызов getpid
- •Системные вызовы getgid, getegid
- •Системные вызовы getuid, geteuid
- •Системный вызов setgid
- •Системный вызов setuid
- •Системный вызов nice
- •Практическое задание «си. Управление процессами»
- •2.3.3 Управление оперативной памятью
- •Указатели на простые переменные
- •Массивы и указатели на массивы
- •Указатели на структуры
- •Динамическое распределение оп
- •Практическое задание
- •3 Компиляция, компоновка и загрузка в Linux
Структурные операторы shell Оператор цикла for
Синтаксис:
for <переменная> in <список значений>
do <список команд>
done
Пример
Пусть имеется командный файл makelist:
cat makelist
sort +1 people | pr –h Distribution | lpr //Сортировка по второму полю, печать заголовка, распечатка файла
Если вместо одного файла people имеется несколько adminpeople, hardpeople, softpeople, то необходимо повторить выполнение процедуры с различными файлами с помощью оператора for
Пример 1
for file in adminpeople, hardpeople, softpeople
do
sort +1 $file | pr –h Distribution | lpr
done
Пример 2
for file in *people
do
sort $file
done
Условный оператор if
Синтаксис:
if <если эта команда выполняется успешно, то>
then <выполнить все последующие команды до else или, если его нет, до fi>
[else <иначе выполнить следующие команды до fi>]
fi
Пример:
if test $# -eg 0
then echo “You must give a filename”
exit 1
else sort +1 $1| …| lpr
fi
// Если значение переменной # равно нулю, выводится сообщение «You must give a filename”, выполнение программы прекращается. Иначе выполняется команда сортировки данных.
Команда test
Эта команда применяется внутри shell-процедур.
Имеется три типа проверок: оценка числовых значений; оценка типа файла; оценка строк.
Для чисел синтаксис следующий:
N op M, где N, M –числовые переменные, операция op принимает следующие значения:
-
-eg
равно
-ne
не равно
-gt
больше
-lt
меньше
-ge
больше и равно
-le
меньше или равно
Для файла синтаксис такой:
op filename
операция op принимает следующие значения:
-
-s
файл существует и не пуст
-f
файл, а не каталог
-d
файл-директория
-w
файл для записи
-r
файл для чтения
Для строк синтаксис такой:
S op R
операция op принимает следующие значения:
-
=
эквивалентность
!=
неэквивалентность
-z
строка нулевой длины
-n
ненулевая длина строки
Несколько проверок могут быть объединены логическими операциями –a (and) и -o (or).
Пример:
if test –w $2 -a -r $1
then cat $1>> $2
else echo “can not append”
fi
Пример:
echo “Vvedite a”
read a
echo “Vvedite b”
read b
if test $a –lt $b
then
echo “Hello”
else
echo “…”
fi
