Точка с запятой команды завершается необязательно в awk, если следующая команда начинается с новой строки.
Здесь (1 == 2)
интерпретируется отдельно от блока {...}
, который начинается с новой строки. (1 == 2)
возвращает false, и ничего не печатается, но следующий { ... }
блок считается независимым, и здесь OK
печатается для каждой строки.
Вы должны исправить это с помощью:
#!/bin/awk -f
(1 == 2) {
print "OK"
}
Теперь все, что находится внутри { ... }
, будет оцениваться только при успешном выполнении условия.