Ubuntu Live USB работает не так, как ожидалось

Существует сильная синтаксическая разница между двумя:

Переадресация - это аргумент для программы. A pipe разделяет две команды

. Вы можете думать о таких переадресациях: cat [<infile] [>outfile] , Это означает, что порядок не имеет значения: cat <infile >outfile совпадает с cat >outfile <infile. Вы даже можете смешивать перенаправления с другими аргументами: cat >outfile <infile -b и cat <infile -b >outfile оба прекрасно подходят. Также вы можете объединять более одного входа или выхода (входы будут считываться последовательно, и все выходные данные будут записываться в каждый выходной файл): cat >outfile1 >outfile2 <infile1 <infile2. Целью или источником перенаправления может быть либо имя файла, либо имя потока (например, 1, по крайней мере, в bash).

Но трубы полностью разделяют одну команду из другой команды, t смешивать их с аргументами:

[command1] | [command2]

Труба берет все, что записано на стандартный вывод из команды1, и отправляет его на стандартный ввод команды2.

Вы также можете комбинировать трубопроводы и перенаправление. Например:

cat <infile >outfile | cat <infile2 >outfile2

Первый cat будет читать строки из infile, затем одновременно записывать каждую строку в outfile и отправлять ее ко второму cat.

В второй cat, стандартный ввод сначала считывается из трубы (содержимое infile), затем считывается из infile2, записывая каждую строку в outfile2. После выполнения этого outfile будет копией infile, а outfile2 будет содержать infile, за которым следует infile2.

Наконец, вы действительно делаете что-то действительно похожее на ваш пример, используя перенаправление «здесь строки» (только для семейства bash) и backticks:

grep blah <<<`ls`

даст тот же результат, что и

ls | grep blah

Но я думаю, что версия перенаправления сначала будет считывать весь вывод ls в буфер (в памяти ), а затем подайте этот буфер на grep по одной строке за раз, тогда как версия с каналами будет принимать каждую строку от ls по мере ее появления и передать эту строку grep.

1
задан 9 May 2013 в 01:52

0 ответов

Другие вопросы по тегам:

Похожие вопросы: