Se a operação lógica é sempre a mesma (ou seja, neste caso ==
) e você só quer mudar o número do campo e o valor contra o qual é testado, então você pode passá-los como variáveis separadas, por exemplo
#!/bin/bash
awk -v field=3 -v value="hello" '
{
if ( $field == value )
{
print "hye"
}
if ( == "hello" )
{
print "bye"
}
}' test
Se você realmente quer criar um script awk variável, então IMHO é necessária uma abordagem diferente, por exemplo, usando um documento aqui para escrever o script awk na hora usando o shell para expandir seu comando variável - algo como
#!/bin/bash
mycommand="$3 == \"hello\""
awk -f- test << EOF
{
if ( ${mycommand} )
{
print "hye"
}
if ( $3 == "hello" )
{
print "bye"
}
}
EOF