Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lec01.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
241.66 Кб
Скачать

3.2 Работа с командным интерпретатором

Работа с интерпретатором не ограничивается выполнением команд из командной строки. Для интерпретатора можно писать также программы (сценарии) [1,3]. Эти программы могут включать как команды командной строки, так и операторы встроенного языка программирования.

Простейшая программа:

#!/bin/sh

echo “Hello”

Сохраним этот текст в файл с именем “hello”.

Применим к файлу команду

chmod u+x hello

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

Теперь файл можно запустить командой

./hello

На экран будет выведено слово Hello.

Строка с началом #! сообщает системе имя интерпретатора, в котором должен выполняться данный сценарий.

Для Perl, например, может быть

#!/usr/bin/perl

Один символ # означал бы комментарий.

Вместо echo “Hello” можно было бы написать: printf “Hello”.

3.3 Переменные

Язык интерпретатора содержит два типа переменных: переменные сценария (т.е. локальные) и переменные среды. Переменные среды доступны другим программам, а переменные сценария только ему самому.

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

myvar=5

Для доступа к информации в переменной перед ее именем следует указывать символ $. Например:

echo ${myvar}

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

myvar = 5

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

myvarB=$myvar

Если создается переменная среды, ее нужно экспортировать, чтобы она была доступна другим программам, запущенным из данного интерпретатора.

MYVAR=5

export MYVAR

В именах переменных учитывается регистр. Имена могут содержать буквы, цифры и знак подчеркивания “_”, но должны начинаться с буквы. Обычно в локальных переменных используют нижний регистр, в переменных среды – верхний.

3.4 Взаимодействие с пользователем

Для ввода данных из клавиатуры существует команда read. Пример:

#!/bin/sh

echo “Your name”

read name

echo “Hello, ${name}”

Команда read может использовать несколько переменных:

read var1 var2 var3

Получить информацию от пользователя можно также при помощи аргументов командной строки. Значения этих переменных автоматически сохраняются в специальных переменных.

В командную строку можно включить до 9 аргументов командной строки. Они хранятся в переменных $1 - $9. Переменная $0 содержит имя самой программы, переменная $@ - все аргументы, а $# - количество аргументов.

Еще один способ присвоения значения переменной – подстановка команд.

Пример:

TodayDate=`date`

Здесь вывод команды date присваивается переменной TodayDate.

3.5 Арифметические операции в сценариях

Простейшие операции можно выполнить с помощью команды expr (expr не работает с вещественными числами, скобки не поддерживаются).

Пример:

var3=`expr $var1 + $var2`

Аргументы и оператор нужно разделять символом пробела. Используются операции: / - деление нацело, % - остаток от деления, \* - умножение (использовано экранирование символа).

Оператор expr 2 + 2 = 4 + 1 возвращает 0, поскольку выражение не является истинным. Оператор expr 5 != 3 возвращает 1 (истина).

Команда expr позволяет обрабатывать также неравенства, при этом знаки операций экранируются: \>, \<, \>=, \<=. Могут сравниваться и строки: expr ”One” = ”one”.

Для операций с числами с плавающей точкой используется команда bc, которая по существу представляет собою отдельный язык программирования.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]