Você não mencionou em qual sistema operacional você está rodando ou qual versão do awk está usando, mas ao tentar reproduzir seu problema no meu host Linux com o GNU awk (4.1.1), ele funciona bem para mim. Dado:
#!/bin/awk -f
BEGIN { exit 1 }
Quando, quando colocado em um arquivo test.sh
, resulta em:
$ ./test.sh
$ echo $?
1
Concordo com o comentador que disse que test.sh
é um nome estranho para um script awk
. Eu iria com uma extensão .awk
para deixar claro que não é realmente um script de shell.
Atualizar
No RHEL 6.7:
$ rpm -q redhat-release-server
redhat-release-server-6Server-6.7.0.3.el6.x86_64
com o awk:
$ awk --version
GNU Awk 3.1.7
Tudo parece bem. O script:
$ cat test.awk
#!/bin/awk -f
BEGIN {exit 1}
O resultado:
$ ./test.awk
$ echo $?
1