Como executar um script de shell contendo um comando awk [closed]

0

Como executar este script (chamado count.sh )?

awk 'BEGIN{ x=0 ; while (x < 5) { x+=1 ; print x ; } }'

Estou tentando executá-lo com sh count.sh , mas isso está me causando um erro.

    
por CuriousCoder 17.02.2011 / 16:56

2 respostas

2

Isso é o que eu fiz para meus próprios scripts:

#!/usr/bin/awk -f
BEGIN{ x=0 ; while (x < 5) { x+=1 ; print x ; } }

A única desvantagem dessa abordagem é que o caminho para o Awk é codificado. Isso será interrompido quando o script for exportado via NFS e o cliente do NFS tiver o Awk instalado em um diretório diferente (por exemplo, /bin/awk versus /usr/bin/awk .)

A configuração da permissão executável permitirá que você chame o script diretamente, sem ter que usar o shell para iniciá-lo (você também pode deixar a extensão .sh, pois os scripts da convenção não os incluem):

$ chmod +x count
$ ./count
1
2
3
4
5
    
por 18.02.2011 / 06:08
1

Eu corri seu script, mas não recebi nenhum erro (embora eu esperasse :))

$ cat test.awk
awk 'BEGIN{ x=0 ; while (x < 5) { x+=1 ; print x ; } }'
$ bash test.awk
1
2
3
4
5

Qual erro você recebeu? Eu esperava que o awk pedisse um arquivo de entrada para processar; aprendi uma nova coisa:)

    
por 18.02.2011 / 12:46