Sou novo no unix. Eu digitei este comando no terminal do Ubuntu:
pwd | echo
Eu esperava ver a saída de pwd
in terminal( /home/fatemeh/Documents/Code/test
), mas a saída era apenas uma única linha vazia .
por que isso acontece?
Sou novo no unix. Eu digitei este comando no terminal do Ubuntu:
pwd | echo
Eu esperava ver a saída de pwd
in terminal( /home/fatemeh/Documents/Code/test
), mas a saída era apenas uma única linha vazia .
por que isso acontece?
echo
não faz nada com entrada padrão; ele apenas analisa seus parâmetros. Então você está efetivamente executando oecho
que, por si só, gera uma única linha vazia e a entrada padrão é descartada.Se você quiser ver o comportamento que está tentando implementar, use uma ferramenta projetada para analisar a entrada padrão, como
cat
:Se você realmente deseja usar
echo
para exibir o diretório de trabalho atual (ou a saída de outro comando), você pode usar a Substituição de Comando para fazer isso para você:Como é afirmado nas outras respostas,
echo
não lê de stdin, portanto não imprimirá a saída depwd
. Caso você ainda não saiba,pwd
imprime sua saída por conta própria, então você simplesmente precisa executá-lo sozinho para obter o resultado desejado.Se você realmente quiser usar o echo para isso, você pode usar a Substituição de Comando . Isso passará a saída do seu comando (
pwd
)echo
como parâmetro. O que novamente neste exemplo não é necessário, poispwd
produzirá sua própria... saída para stdout.O
echo
comando não lê da entrada padrão, ele escreve o que você diz para escrever. Neste caso, você não disse para escrever nada, então tudo o que imprimiu foi uma nova linha.pwd | echo
é equivalente a apenas executarecho
.Se você quiser usar um pipe, precisará usar algum comando que leia a entrada padrão (por exemplo,
cat
):