Вы не упомянули, на какой ОС вы работаете или какую версию awk используете, но пытаясь воспроизвести вашу проблему на моем хосте Linux с GNU awk (4.1.1) у меня все работает нормально. Дано:
#!/bin/awk -f
BEGIN { exit 1 }
Что при помещении в файл test.sh
приводит к:
$ ./test.sh
$ echo $?
1
Я согласен с комментатором, который сказал, что test.sh
- странное имя для сценарий awk
. Я бы пошел с расширением .awk
, чтобы прояснить, что на самом деле это не сценарий оболочки.
Обновление
В RHEL 6.7:
$ rpm -q redhat-release-server
redhat-release-server-6Server-6.7.0.3.el6.x86_64
С awk:
$ awk --version
GNU Awk 3.1.7
Кажется, все в порядке. Сценарий:
$ cat test.awk
#!/bin/awk -f
BEGIN {exit 1}
Результат:
$ ./test.awk
$ echo $?
1