Читаем Linux и UNIX: программирование в shell. Руководство разработчика. полностью

выполнению практических задач. Ниже приводится пример, сценария, который вызывает другой сценарий. Вызываемый сценарий фактически и является дочерним процессом.

Рассматриваемый листинг включает два небольших сценария под именами father и child. Сценарий father задает переменную с именем film, значение которой "A Few Good Men". Эта переменная отображается на экране, затем вызывается другой сценарий под названием child. Данный сценарий отображает переменную film из первого сценария. Перед отображением на экране значением переменной film становится "Die Hard". Затем управление передается назад, сценарию father, и значение переменной снова выводится на экран.

$ pg father

#!/bin/sh

# сценарий father.

echo "this ls the father"

FILM="A Few Good Men"

echo "I like the film: $FILM"

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

child

echo "back to father"

echo "and the film ls :$FILM"

$ pg child

#!/bin/sh

# сценарий child

echo "called from father..! am the child"

echo "film name is :$FILM"

FILM="Die Hard"

echo "changing film to :$FILM"

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

$ father

this ls the father

I like the film :A Few Good Men

called from father… i am the child

film name is :

changing film to :Die Hard

back to father

and the film ls :A Few Good Men

Сценарий child не может возвратить переменную film, поскольку эта переменная не может быть экспортирована в сценарий father.

Теперь, если команду export добавить в сценарий father, сценарий child получит всю информацию о переменной film.

$ pg father

#!/bin/sh

# сценарий father.

echo "this ls the father"

FILM="A Few Good Men"

echo "I like the film :$FILM"

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

#сначала экспортируйте переменную

export FILM

child

echo "back to father"

echo "and the film is :$FILM"

$ father2

this ls the father

I like the film :A Few Good Men

called from father… i am the child

film name ls :A Few Good Men

changing film to :Die Hard

back to father

and the film ls :A Few Good Men

После того как команда export включена в состав сценария, можно выполнить произвольное число процессов. И всем этим процессам известно о наличии переменной FILM.

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

14.4. Позиционные параметры командной строки

Как указывалось в начале главы, существуют переменные четырех типов. Имеются переменные интерпретатора команд, переменные среды, а также переменные двух других типов, которые являются специальными, поскольку они предназначены только для чтения. Существуют позиционные и специальные параметры. Рассмотрим позиционные параметры.

Если информация передается shell–сценарию, с помощью позиционных параметров можно получить доступ к ней. Каждый параметр передает сценарию заданное количество ссылок. Можно передавать произвольное число аргументов, но доступными являются только первые девять из них. Это ограничение преодолевается путем использования команды shift. Далее в книге будет показано, как работает команда shift. Нумерация параметров начинается с единицы и завершается девятью; каждый параметр, доступ к которому следует получить, предваряется знаком доллара $. Первый параметр, имеющий номер нуль, резервируется для представления действительного названия сценария; это значение может использоваться независимо от того, содержатся ли в сценарии параметры.

В приведенной таблице в качестве примера демонстрируется, как можно получить доступ к каждому параметру, если в сценарий передается строка "Did You See The Full Moon"


$0$1$2$3$4$5$6$7$8$9
Наименование сценарияDidYouSeeTheFullMoon

14.4.1. Применение в сценариях позиционных параметров

Воспользуемся приведенным выше примером в следующем сценарии.

$ pg param

#!/bin/sh # параметры

echo "This ls the script name : $0"

echo "This ls the first parameter : $1"

Перейти на страницу:

Похожие книги

Библия БДСМ. Полное руководство
Библия БДСМ. Полное руководство

Первое исчерпывающее пособие по БДСМ. Уникальный иллюстрированный гид для тех, кому просто любопытно, и для тех, кто уже в Теме. В этой книге известные педагоги и профессионалы ответили на все важные вопросы и раскрыли все интересующие вас темы: основные принципы, ролевые игры, господство, подчинение, фистинг, садизм, мазохизм, связывание, физическое воздействие, тантра необычного секса и многое другое. Если вы хоть раз задумывались о БДСМ, значит, эта книга то, что вам нужно. Она способна обучить, вдохновить и бросить вызов даже опытным игрокам. Не бойтесь экспериментировать, и добро пожаловать в мир сексуальных приключений!

Тристан Таормино , Литагент «5 редакция»

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / Руководства / Дом и досуг / Образовательная литература / Словари и Энциклопедии
Путь менеджера от новичка до гуру
Путь менеджера от новичка до гуру

«Путь менеджера» – это сборник лучших материалов online-сообщества (learning community) менеджеров E-xecutive за пять лет (2001–2005), которые впервые публикуются offline. Возможно, это книга с самым большим количеством авторов: 20 сотрудников E-xecutive и более 200 участников Сообщества писали, выбирали и редактировали материалы.Книга представляет собой «карту местности» для менеджера, стремящегося найти кратчайший путь к успеху, на которой отображены открытия лучших «картографов» – всемирно признанных бизнес-гуру и успешных российских топ-менеджеров. Эта книга о том, чем в действительности живут менеджеры, о чем не пишут в учебниках, и предназначается она для тех, кто стремится не только к карьерному успеху, но и к настоящей эффективности, личностному и профессиональному развитию.

Сообщество менеджеров E-xecutive

Руководства / Словари и Энциклопедии