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,awketc.), 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.