трубопровод в Linux - PullRequest
       8

трубопровод в Linux

1 голос
/ 01 марта 2011

У меня есть файл с именем test, в котором содержится слово "привет".

не должно

     echo test | cat 

выводить привет?так как он принимает вывод из эхо-теста, который является тестом, в качестве входа для кат.по сути, я делаю тест на кошку.

но фактический результат - тест, я действительно в замешательстве.

Ответы [ 4 ]

2 голосов
/ 01 марта 2011

Ваши каналы отправляют test на cat как вход , а не как аргумент .Вы можете сделать:

cat `echo test`

для управления аргументом до cat с echo.

1 голос
/ 01 марта 2011

С cat --help

Если ФАЙЛ отсутствует или если ФАЙЛ - -, прочитайте стандартный ввод.

В вашем случае cat читает из стандартного ввода, который равен test, и выводит это.

1 голос
/ 01 марта 2011

echo печатает свои аргументы.cat печатает файл, который по умолчанию является стандартным вводом.Когда вы подключаете стандартный выход echo к стандартному входу cat.

Правильным является просто cat test.

0 голосов
/ 01 марта 2011

В некоторых случаях вы можете захотеть передать аргумент через канал.Вот как вы это сделаете:

echo test | xargs cat

, который выведет содержимое файла с именем "test".

...