Готовый перевод bash Cookbook / bash: Сборник рецептов: Useless Use of cat / Бесполезное использование команды cat
Некоторым пользователям Unix нравится указывать на недостатки в коде других людей. В основном это конструктивная критика, подаваемая мягко и принимаемая с благодарностью.
Пожалуй самый распространенный случай - так называемая "Награда за бесполезное использование cat", присуждаемая кому-либо, кто пишет что-то вроде cat file | grep foo, вместо простого grep foo file. В этом случае cat не нужен, а также он вызывает излишнюю трату системных ресурсов, в следствии того, что запускается в подоболочке (subshell). Другой частый случай - использование cat file | tr '[A-Z]' '[a-z]' вместо tr '[A-Z]' '[a-z]' < file. Иногда использование cat может вызвать ошибку в вашем скрипте (смотрите Секцию 19.8, "Забудьте о конвейерах, используйте подоболочки").
Но ... (Вы знали, что есть какой то подвох, не так ли?) иногда излишне использование cat действительно служит цели. Она (команда) может быть заполнителем конвеера, демонстрирующим сам конвеер или его фрагмент, с другими командами которые заменят её (возможно, даже cat-N).
Пока мы одобряем эффективность и соглашаемся, что это цель, к которой стоит стремиться, это не критично, как было раньше. Мы не поощряем беспечность и раздувание кода, просто процессоры не станут от этого медленнее. Так что если вам нравиться команда cat, то используйте ее.
Переведено на Нотабеноиде
http://notabenoid.org/book/750/3509
Переводчики: bbrodriges, tehhi, stillru
Настройки
Готово:
