
- •«Операционные системы.Командный интерфейс» конспект лекций Тема 1. Введение. Содержание курса
- •Тема 2. Классификация режимов работы ос
- •Диалоговый пакетный
- •Тема 3. Виды нтерфейсов пользователя ос unix
- •Тема 4. Обобщенные принцпы построения современных ос
- •Тема 5. Состав ос unix
- •Тема 6. Среда для работы пользователя
- •Тема 7. Регистрация пользователя в системе
- •Тема 8. Группа коммуникационных команд
- •Тема 9. Группа вспомогательных команд
- •Тема 10. Перенаправление ввода-вывода
- •Файловая система unix
- •Тема 11. Файлы unix
- •Тема 12. Генерация имен файлов
- •Тема 13. Структура системы каталогов unix
- •Тема 14. Управление каталогами в unix
- •Тема 15. Команды поиска файлов в системе каталогов
- •Тема 16. Управление файлами
- •Тема 17. Управление правами доступа к файлам и каталогам
- •Здесь файл fil1.C, владельцем которого является пользова-
- •Тема 18. Конвееры и фильтры
- •Тема 19. Создание и редактирование текстовых файлов
- •Команды удаления текста
- •Введение в shell- программирование
- •Тема 20. Операторы – команды
- •В unix при написании операторов важное значение отводится
- •Тема 21. Управление локальными переменными
- •Тема 22. Подстановка значений переменных
- •Тема 23. Экспортирование локальных переменных в среду shell
- •Тема 24. Проверка условий
- •2. Сравнение числовых значений:
- •3. Сравнение строк:
- •If список_команд1
- •Тема 25. Построение циклов
- •Тема 26. Управление процессами в unix
- •Тема 27. Создание фоновых процессов
- •Тема 28. Управление приоритетами
- •Тема 29. Завершение процессов
- •Тема 30. Перехватывание сигналов
- •Тема 31. Сетевые средства unix
В unix при написании операторов важное значение отводится
Кавычкам (апострофам):
'...' - для блокирования специальных символов, которые
могут быть интерпретированы как управляющие;
"..." - блокирование наиболее полного набора управляющих символов или указания того, что здесь будет обрабатываться не сам аргумент, а его значение;
`...` - (обратные кавычки или знак ударения) для указания
того, что они обрамляют команду и здесь будет обрабатываться результат работы этой команды (подстановка результатов работы указанной команды).
Пример 1.
$ date
Apr 3 14:27:07 2005
$ set `date`
$ echo $3
14:30:25
$
Пример 2.
$echo `ls`
fil.1
fil.2
...
$echo '`ls`'
# одинарные кавычки блокируют действие обратных кавычек
# т.е. они распечатываются как обычные символы
`ls`
$
Пример 3.
$ls -al|grep “Mar 30”
выводится информация о всех файлах текущего каталога, модифицированных 30 марта всех годов;
Эта же командная строка без кавычек приобретает совершенно другой смысл:
$ls -al|grep Mar 30
здесь Mar –шаблон, а 30 – имя файла.
Для ввода строки текста со стандартного устройства ввода используется оператор:
read имя1 [имя2 имя3 .] - чтение строки слов со стандартного ввода
Команда вводит строку, состоящую из нескольких полей (слов), со стандартного ввода, заводит переменную для каждого поля и присваивает первой переменной имя1, второй переменной - имя2, и т.д. Если имен больше, чем полей в строке, то оставшиеся переменные будут инициализированы пустым значением. Если полей больше, чем имен переменных, то последней переменной будет присвоена подстрока введенной строки, содержащая все оставшиеся поля, включая разделители между ними. В частности, если имя указано только одно, то соответствующей ему переменной присваивается значение всей строки целиком.
Пример (предполагает наличие программы –русификатора):
#Текст процедуры:
echo "Введите значения текущих: гг мм ччвв"
read 1v 2v 3v
echo "год 1v"
echo "месяц 2v"
echo "сегодня 3v"
# здесь кавычки используются для блокирования пробелов
#Результат выполнения процедуры:
Введите значения текущих: гг мм ччвв
2005 Maрт 21 9:30 <Enter>
год 2005
месяц Maрт
сегодня 21 9:30
Тема 21. Управление локальными переменными
В отличии от рассмотренных в начале курса системных переменных среды, переменные языка shell называются локальными переменными и используются в теле процедур для решения обычных задач. Локальные переменные связаны только с породившим их процессом. Локальные переменные могут иметь имя, состоящее из одного или нескольких символов. Присваивание значений переменным осуществляется с помощью известного оператора
"=" - присвоить (установить) значение переменной.
При этом если переменная существовала, то новое значение замещает старое. Если переменная не существовала, то она строится автоматически shell. Переменные хранятся в области ОП - области локальных данных.
$count=3
$color=red belt
$fildir=lev/d1/d12
$
Еще пример:
# текст процедуры
b=”1 + 2”
echo c=$b
#в результате выполнения процедуры выводится текст,
# включающий текст переменной b
c=1+2