"Рас Сэйдж. Приемы профессиональной работы в UNIX" - читать интересную книгу авторавсе инструментальные средства системы UNIX должны быть спроектированы
так, чтобы они могли быть связаны с другими командами и процессами, в которые они могут быть встроены. Возможно, что другой команде необхо- димо будет вызвать команду tree и проверить, корректно ли она отрабо- тала. Хорошим стилем проектирования программных средств является прог- нозирование и разрешение многих способов использования программы. Строки 9-15 проверяют, чтобы любые параметры, передаваемые ко- мандной строке, были действительно каталогами, как указано в нашем синтаксисе. Напомним, что в командной строке может быть помещен только один каталог. Если мы используем только один параметр и этот параметр не является каталогом, то мы печатаем сообщение об ошибке и выходим. Таким образом, операторы проверки гарантируют, что либо не использу- ется ни один параметр, либо единственный используемый параметр явля- ется корректным каталогом. Мы подошли к сердцу команды tree - это строки 17-20. Главным здесь является команда find системы UNIX. Каталог, в котором ведется поиск, определяется при запуске команды. Синтаксис ${1:-.} является формой параметрической подстановки и означает следующее: если $1 (что является первым позиционным параметром) установлен (иными словами, если аргумент был передан командной строке и был ненулевым), то нужно использовать это значение. В противном случае следует использовать ка- талог . (текущий каталог). Этот тип подстановки дает нам возможность запускать команду tree без указания имени каталога (когда после tree на командной строке ничего не следует),- то есть работать в режиме "по умолчанию", что часто используется в различных файловых инструментах. ей встречается. Поскольку не используется никакая специальная опция для селекции файлов, печатаются все имена. После этого все полные име- на файлов сортируются для более удобного чтения. Такая сортировка несколько увеличивает время работы команды, однако наглядность резуль- тата говорит о том, что это время было потрачено с пользой. Далее, отсортированные полные имена файлов передаются по прог- раммному каналу команде sed системы Unix. Sed - это "потоковый редак- тор", очень гибкое средство, которое может быть использовано для иден- тификации и обработки различных образцов текста. Опции -e являются операциями редактирования, применяемыми к поступающим данным. Первый оператор просто сообщает команде sed, что нужно напечатать первую строку, затем удалить строку 1. Это делается для того, чтобы напеча- тать название корневого каталога, который исследуется. Этой строке не требуется никакой дальнейшей модификации, так как корневой каталог не имеет никаких дополнительных элементов путей доступа, которые нужно было бы трансформировать в символы косой черты для показа отступов. Удаление первой строки связано с тем, что она не нужна в дальнейшей работе. Вторая операция редактирования является командой подстановки. Она заменяет каждый символ, отличный от символа косой черты (вплоть до первого символа /) на последовательность пробелов и затем один символ (/). Это избавляет нас от печатания имен промежуточных каталогов впе- реди полного имени файла. Буква g в конце этой строки означает, что эта операция выполняется глобально, то есть для всех считываемых сим- |
|
|