Страница LFS сообщает для установки DocBook SGML DTD 3.1 и 4.5, но документ Вы создаете очевидно DocBook SGML DTD 3.0 использования. Таким образом, необходимо получить ту версию (или скорректировать тестовый документ). Инструкции, которым Вы следуете, являются дефектными в том отношении.
Перенаправления интерпретируются оболочкой. При использовании API, выполняемые команды, вероятно, не выполняются через оболочку, но непосредственно (человек 3 системы по сравнению с человеком 3 должностных лица).
Для использования перенаправлений только запускают оболочку и используют перенаправления там, например:
/bin/sh -c "command > redirect"
Если у Вас есть несколько VMs, Вы могли бы хотеть изучить программу, названную pdsh. Это может привыкнуть к командам выполнения (через ssh) на нескольких удаленных машинах (реальный или виртуальный) параллельно.
Это было записано для использования в кластерах HPC, но это - полезный инструмент системного администратора для работы с любой группой машин linux/unix.
https://computing.llnl.gov/linux/pdsh.html
например, если у меня есть набор машин, определенных с атрибутом, "вычисляют" (новинка - вычисляют узлы в развертывании OpenStack), я могу выполнить следующую команду для обнаружения, сколько узлов имеет 16 или больше свободных ядер (из 24 ядер на узел) и является этим способным к выполнению xxlarge VM с 16 ядрами:
# pdsh -g compute "ps hwwu -Ckvm | sed -e 's/.*-smp //' -e 's/,.*//' | awk '{VMS += 1 ; CPUS += \$1} END {print VMS, CPUS, 24-CPUS}'" | \ awk '$4 > 15 {print}' | sort -k4 -n comp17: 6 8 16 comp19: 6 8 16 comp23: 6 8 16 comp26: 7 8 16 comp51: 7 8 16 comp56: 6 8 16 comp71: 7 8 16 comp78: 7 8 16 comp81: 6 8 16 comp11: 6 7 17 comp47: 6 7 17 comp79: 6 7 17 comp09: 5 6 18 comp29: 5 5 19 comp27: 4 4 20
(реальный вывод использования, имена хостов, отредактированные для анонимности)
Команда в двойных кавычках выполняется на удаленных машинах (правила заключения в кавычки оболочки применяются, следовательно \1$ в первом awk), и остаток (второй awk и вид) выполняется на локальной машине.
/bin/sh -c 'command>redirect'
если приложение бесхитростно и разделяет строку на отдельные аргументы в каждом пробеле. – Gilles 'SO- stop being evil' 26.07.2012, 02:07