Comandos como grep
e awk
podem aceitar a entrada padrão ( STDIN) como um parâmetro ou argumento usando um pipe. No entanto, outros, como cp
e echo
, desconsideram o fluxo de entrada padrão e dependem exclusivamente dos argumentos encontrados após o comando.
Usando o comando xargs
você pode construir e executar linhas de comando a partir da entrada padrão, por exemplo, em seu caso:
echo 5 | xargs echo
Não existe uma regra exata para saber se um comando aceita a entrada padrão, mas você pode ter uma leve noção usando essas duas regras:
-
Se o comando for usado para manipular de alguma forma o conteúdo de um arquivo (
grep
,sed
,awk
etc.), geralmente ele pode receber entrada de STDIN. -
Se o comando for usado para manipular o próprio arquivo (por exemplo,
mv
,rm
,cp
) ou um processo (por exemplo,kill
,lsof
) ou para retornar informações sobre algo ( Por exemplo,top
,find
,ps
) então não.