4.2.1 Сложные командные строки

4.2.1 Сложные командные строки

Каждая командная строка выполняется в своей собственной подоболочке, таким образом, команды cd в командной строке влияют только на строку, в которой они записаны. Любую строку в make-файле можно расширить на множество строк, указывая в конце каждой обратный слэш. Ниже показан пример того, как иногда могут выглядеть командные строки.

 1: cd первый_ каталог;

 2:  сделать что-то с файлом $ (FOO) ;

 3:  сделать еще что-то

 4: cd второй_каталог;

 5:  if [ -f некоторый_файл ] ; then

 6:   сделать что-то другое;

 7:  done;

 8:  for i in * ; do

 9:   echo $$i >> некоторый__файл ;

10:  done

make находит в этом фрагменте кода только две строки. Первая командная строка начинается в строке 1 и продолжается до строки 3, а вторая начинается в строке 4 и заканчивается в строке 10. Здесь следует отметить несколько моментов.

• второй_каталог является относительным не к каталогу первый_каталог, а к каталогу, в котором запущен make, поскольку эти команды выполняются в разных подоболочках.

• Строки, образующие каждую командную строку, передаются оболочке в виде одной строки. Таким образом, все символы ;, которые нужны оболочке, должны присутствовать, включая даже те, которые обычно в сценариях оболочки опускаются, поскольку их наличие подразумевается благодаря символам новой строки. Более детально о программировании программной оболочки рассказывается в [22].

• Если требуется разыменовывать переменную make, это делается обычным образом (то есть $(переменная)), но если нужно разыменовывать переменную оболочки, необходимо применять двойной символ $: $$i.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

6.6. Сложные переходы

Из книги Самоучитель UML автора Леоненков Александр

6.6. Сложные переходы Рассмотренное выше понятие перехода является вполне достаточным для большинства типичных расчетно-вычислительных задач. Однако современные программные системы могут реализовывать очень сложную логику поведения отдельных своих компонентов. Может


11. Командные Строки Компилятора

Из книги C++ автора Хилл Мюррей

11. Командные Строки Компилятора Компилятор содержит препроцессор, способный выполнять макроподстановки, условную компиляцию и включение именованных файлов. Строки, начинающиеся с #, относятся к препроцессору. Эти строки имеют независимый от остального языка синтаксис;


Командные файлы

Из книги Обработка баз данных на Visual Basic®.NET автора Мак-Манус Джеффри П


Командные сообщения

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Командные сообщения Сообщения WM_COMMAND от меню, кнопок панели управления и клавиш акселераторов. В отличие от оконных сообщений и сообщений от органов управления, командные сообщения могут быть обработаны более широким спектром объектов. Эти сообщения обрабатывают не


Командные сообщения и приложение Single

Из книги Фреймы для представления знаний автора Мински Марвин

Командные сообщения и приложение Single Большинство командных сообщений от элементов меню и панели управления поступают для обработки главному окну приложения, представленному объектом класса CMainFrame.Главное окно приложения сразу передает командное сообщение для


2.7. Более сложные сценарии

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

2.7. Более сложные сценарии Смысл празднования дня рождения ребенка весьма приближенно передается тем определением, которое можно найти, например, в толковом словаре: день рождения — это «прием гостей, устраиваемый по случаю дня рождения». Прием здесь может, в свою


Сложные проблемы

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Сложные проблемы Сборщик мусора сталкивается со следующими проблемами, вызванными практическими ограничениями на размещение объектов в современной ОО-среде:[x]. ОО-подпрограммы могут вызывать внешние программы, в частности, С-функции, которые могут, в свою очередь,


11.1.3. Более сложные конструкторы

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

11.1.3. Более сложные конструкторы По мере усложнения объектов у них появляется все больше атрибутов, которые необходимо инициализировать в момент создания. Соответствующий конструктор может оказаться длинным и запутанным, его параметры даже не будут помещаться на одной


11.2. Более сложные механизмы

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

11.2. Более сложные механизмы Не все в модели ООП, реализованной в Ruby, одинаково очевидно. Что-то сложнее, что-то применяется реже. Линия раздела для каждого программиста проходит в разных местах. В этой части главы мы попытались собрать те средства, которые не так просты или


Сложные выражения JavaScript

Из книги PGP: Кодирование и шифрование информации с открытым ключом. автора Левин Максим

Сложные выражения JavaScript Сложные выражения получили свое название благодаря тому, что все они состав- лены из нескольких простых выражений. Сложные выражения выполняются специальным образом и служат для особых целей — в основном, для управления процессом выполнения


Как рисуются сложные контуры

Из книги Microsoft Access 2007 автора Днепров Александр Г.

Как рисуются сложные контуры Контуры сложных фигур рисуются в три этапа.1. Web-обозреватель ставится в известность, что сейчас начнется рисование контура сложной фигуры.2. Рисуются отдельные линии, прямые и кривые, составляющие сложный контур.3. Web-обозреватель ставится в


Как рисуются сложные контуры

Из книги автора

Как рисуются сложные контуры Контуры сложных фигур рисуются в три этапа.1. Web-обозреватель ставится в известность, что сейчас начнется рисование контура сложной фигуры.2. Рисуются отдельные линии, прямые и кривые, составляющие сложный контур.3. Web-обозреватель ставится в


Сложные команды.

Из книги автора

Сложные команды. Для дешифровки сообщения, оставляя подпись на нем нетронутой:pgp –d ciphertextfileДля создания удостоверяющей подписи отдельно от документа:pgp –sb textfile [-u your_userid]Для отделения удостоверяющей подписи от подписанного сообщения:pgp –b


Сложные запросы

Из книги автора

Сложные запросы С помощью сложных запросов можно выполнить следующее.• Представить данные из нескольких связанных таблиц в виде одной.• Выбрать данные по заданному пользователем условию.• Создать пользовательские поля запроса, значения которых будут основываться на