Как передать вывод одного эха на вход другого?

2009
Andriy

Я пытаюсь следующее

echo 5 | echo 

но ничего не получите. Что случилось?

1

1 ответ на вопрос

1
jcbermu

Такие команды, как grepи, awkмогут принимать стандартный ввод (STDIN) в качестве параметра или аргумента с использованием канала. Тем не менее, другие, такие, как cpи echoигнорировать стандартный входной поток и полагаться только на аргументах, найденных после команды.

Используя команду, xargsвы можете создавать и выполнять командные строки из стандартного ввода, например, в вашем случае:

echo 5 | xargs echo

Не существует точного правила, чтобы узнать, принимает ли команда стандартный ввод, однако вы можете иметь небольшое представление, используя эти два правила:

  • Если команда используется для какого-либо манипулирования содержимым файла ( grep, sedи awkт. Д.), То она обычно может принимать входные данные из STDIN.

  • Если команда используется для управления самого файла (например mv, rm, cp) или процесса (например kill, lsof) или для возврата информации о чем - либо (например top, find, ps), то это не делает.

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