UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
И, наконец, поскольку
eqn@[email protected]eqnfromtoКак только ваш документ готов, вы должны соединить все препроцессоры и
trofftbleqntrofftroff$ troff -ms <i>имена_файлов</i>-mmИначе вам придется задать аргумент
<i>имена_файлов</i>$ eqn <i>имена_файлов</i> | troff -msили
$ tbl <i>имена_файлов</i> | eqn | troff -msНеудобно следить за тем из препроцессоров, который действительно должен печатать какой-то отдельный документ. Мы сочли уместным написать программу
doctype$ doctype ch9.*cat ch9.1 ch9.2 ch9.3 ch9.4 | pic | tbl | eqn | troff -ms$ doctype hoc.mscat hoc.ms | tbl | eqn | troff -ms$Программа
doctypeawk.PPms$ cat doctype# doctype: synthesize proper command line for troffecho -n "cat $* | "egrep -h (EQ|TS|[|PS|IS|PP)' $* |sort -u |awk ' /^.PP/ { ms++ } /^.EQ/ { eqn++ } /^.TS/ { tbl++ } /^.PS/ { pic++ } /^.IS/ { ideal++ } /^.[/ { refer++ } END { if (refer > 0) printf "refer | " if (pic > 0) printf "pic | " if (ideal > 0) printf "ideal | " if (tbl > 0) printf "tbl | " if (eqn > 0) printf "eqn | " printf "troff " if (ms > 0) printf "-ms" printf "n" } '$(Флаг
-htroffПрограмма
doctypebundleshellКогда дело дойдет до запуска реальных команд
troffМежду прочим, в новой версии этой программы не предусмотрена программа
egrepsortawkegrepsort -uawkВ качестве иллюстрации сравним
doctypeawk$ time awk '... doctype without egrep ...' ch9.*cat ch9.1 ch9.2 ch9.3 ch9.4 | pic | tbl | eqn | troff -msreal 31.0user 8.9sys 2.8$ time doctype ch9*cat ch9.1 ch9.2 ch9.3 ch9.4 | pic | tbl | eqn | troff -msreal 7.0user 1.0sys 2.3$Сравнение, очевидно, в пользу версии с тремя процессами. (Работа была выполнена в однопользовательском режиме; соотношение значений времени показало бы даже более значительное преимущество версии
egrep
