ifconfig
parece imprimir sua ajuda para stderr em vez de stdout . Como a canalização só passa a stdout para o próximo programa, grep
não recebe a saída.
Uma maneira fácil de contornar isso é redirecionando stderr para stdout. Veja um exemplo de como fazer isso com a ajuda de ifconfig
.
ifconfig --help 2>&1 | grep unix
produz a saída desejada
unix (UNIX Domain) inet (DARPA Internet) inet6 (IPv6)
Atualizar : 2>&1
é o que realmente redireciona ( >
) stderr ( 2
) para a mesma saída ( &
) como stdout ( 1
). Como geralmente stdout e stderr são impressos em seu terminal, você não vê a diferença, mas para a tubulação, o fluxo real é importante.