1

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

echo 5 | echo

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

1 ответ1

1

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

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

echo 5 | xargs echo

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .