Команда cat
- это команда, которая означает, что ей нужен собственный процесс, и она имеет свои собственные STDIN и STDOUT. В основном вы берете STDOUT, созданный командой cat
, и перенаправляете его в процесс цикла while.
Когда вы используете перенаправление, вы не используете отдельный процесс. Вместо этого вы просто перенаправляете STDIN цикла while из консоли в строки файла.
Излишне говорить, что второй способ более эффективен. В старом Usenet днях до того, как все вы, маленькие хулиганы, завладели нашим Интернетом (_Дорогие вы, дети! Уходите из моего Интернета!) И уничтожили его с помощью вашей причудливой графики и всех этих веб-страниц, некоторые люди используют вручить премию Бесполезное использование Cat людям, которые внесли свой вклад в группу comp.unix.shell и имели поддельную команду cat
, поскольку использование cat
практически никогда не требуется и обычно более неэффективен.
Если вы используете cat
в своем коде, вам, вероятно, это не нужно. Команда cat
поступает из объединения, и предполагается, что она используется только для объединения файлов. Например, когда мы используем SneakerNet на дискетах по 800 КБ, нам придется разделять длинные файлы с помощью команды Unix split , а затем использовать cat
для объединения их вместе.