O programa awk
aguardará a entrada e, para cada linha de entrada, imprimirá a palavra foo
. É isso que o awk
program { print "foo" }
faz.
Por outro lado, echo
, na primeira substituição de comando, não espera pela entrada.
Você deseja que um programa awk
apenas imprima algo, sem nenhuma entrada, faça a saída em um bloco BEGIN
:
awk 'BEGIN { print "foo" }'
O bloco BEGIN
é executado antes de ler a primeira linha de entrada e, como não há outros blocos no script e nenhum arquivo de entrada, ele será encerrado.
Além disso, nunca escreva código como echo $( ... )
ou echo ' ... '
, apenas use o código dentro da substituição do comando.