Книга: Разработка приложений в среде Linux. Второе издание

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.

Оглавление книги


Генерация: 1.529. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз