O awkprograma aguardará a entrada e, para cada linha de entrada, imprimirá a palavra foo. É isso que o awkprograma { print "foo" }faz.
Em contraste, echo, na primeira substituição de comando, não espera pela entrada.
Você gostaria que um awkprograma apenas imprimisse algo, sem nenhuma entrada, fizesse a saída em um BEGINbloco:
awk 'BEGIN { print "foo" }'
O BEGINbloco é 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 de comando.
O
awk
programa aguardará a entrada e, para cada linha de entrada, imprimirá a palavrafoo
. É isso que oawk
programa{ print "foo" }
faz.Em contraste,
echo
, na primeira substituição de comando, não espera pela entrada.Você gostaria que um
awk
programa apenas imprimisse algo, sem nenhuma entrada, fizesse a saída em umBEGIN
bloco:O
BEGIN
bloco é 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 $( ... )
ouecho ` ... `
, apenas use o código dentro da substituição de comando.