Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО практика.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.17 Mб
Скачать

Экспорт переменных

Как уже говорилось, в ОС Linux существует понятие процесса. Процесс возникает тогда, когда запускается на выполнение какая-либо команда. В свою очередь процесс может породить другие процессы. У каждого процесса есть своя среда и множество доступных ему переменных. Переменные локальны в рамках процесса, где им присвоено значение (описание переменных отсутствует – они все одного типа). Для того, чтобы они были доступны другим порождаемым процессам, необходимо передать их явным образом с помощью команды export.

В следующем примере командный файл p вызывает командные файлы p1 и p2:

# сценарий p

echo Сценарий p

varX=0 varY=1

echo varX=$varX varY=$varY

export varY

p1 # вызов сценария p1

p2 # вызов сценария p2

echo Снова сценарий p:

echo varX=$varX varY=$varY

# сценарий p1

# сценарий p2

echo Сценарий p1

echo Сценарий p2

echo varX=$varX varY=$varY

echo varX=$varX varY=$varY

varX=a varY=b

varX=A varY=B

echo varX=$varX varY=$varY

echo varX=$varX varY=$varY

export varX

export varY

На экран будет выведена следующая информация:

Сценарий p

varX=0 varY=1

Сценарий p1

varX= varY=1

varX=a varY=b

Сценарий p2

varX= varY=1

varX=A varY=B

Снова сценарий p:

varX=0 varY=1

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

22. Вопрос

Условный оператор if

В общем случае оператор if имеет структуру:

if условие

then список

[elif условие

then список]

[else список]

fi

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

if условие

then список

fi

Пример:

###

# if-script: Оценка достижений

echon " Какую оценку получил на экзамене по ОС Linux? "

echo

read z

if [ $z = 5 ]

then echo Не может быть !

elif [ $z = 4 ]

then echo Тебе повезло !

elif [ $z = 3 ]

then echo Молодец !

elif [ $z = 2 ]

then echo Этого следовало ожидать

else echo !

fi

Оператор выбора case

Оператор выбора case имеет структуру:

case строка in

шаблон) список команд ;;

шаблон) список команд ;;

. . .

esac

cтрока (это может быть и один символ) сравнивается с шаблоном, а затем выполняется список команд выбранной строки

Пример:

##

# case-script: Оценка достижений

echon " Какую оценку получил на экзамене по ОС Linux? "

read z

case $z in

5) echo Не может быть ! ;;

4) echo Тебе повезло ! ;;

3) echo Молодец ! ;;

2) echo Этого следовало ожидать ;;

*) echo ! ;;

esac

Обычно последняя строка выбора имеет шаблон (*), что означает “любое значение”.

Еще один пример:

###

# case-menu: Реализация меню

echo "Назовите файл и через пробел наберите цифру,

соответствующую требуемой обработке:

1 – отсортировать

2 – выдать на экран

3 – определить число строк "

read x y # x – имя файла, y – что сделать

case $y in

1) sort < $x ;

2) cat < $x ;

3) wc -l < $x ;

*) echo "

Неизвестная команда ! " ;;

esac