Operação de 'com echo ao tentar awk [duplicate]

0

Por que

 echo 'echo "foo"'

funciona mas

 echo 'awk '{ print "foo" }''

não?

    
por CubeSyVal 15.05.2018 / 07:15

1 resposta

5

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.

    
por 15.05.2018 / 07:29