Такие команды, как grep
и, awk
могут принимать стандартный ввод (STDIN) в качестве параметра или аргумента с использованием канала. Тем не менее, другие, такие, как cp
и echo
игнорировать стандартный входной поток и полагаться только на аргументах, найденных после команды.
Используя команду, xargs
вы можете создавать и выполнять командные строки из стандартного ввода, например, в вашем случае:
echo 5 | xargs echo
Не существует точного правила, чтобы узнать, принимает ли команда стандартный ввод, однако вы можете иметь небольшое представление, используя эти два правила:
Если команда используется для какого-либо манипулирования содержимым файла (
grep
,sed
иawk
т. Д.), То она обычно может принимать входные данные из STDIN.Если команда используется для управления самого файла (например
mv
,rm
,cp
) или процесса (напримерkill
,lsof
) или для возврата информации о чем - либо (напримерtop
,find
,ps
), то это не делает.