As variáveis são referenciadas por nome como em var , não $var in awk . $n refere-se ao campo n th : $1 para o primeiro campo, $2 para o segundo ... ou o registro inteiro para n == 0 ( $0 é o registro completo).
Esses não precisam ser números literais. Você pode usar $(1+1) ou $variable . Se variable contiver 1 , então $variable será o primeiro campo. Um comumente usado é $NF para o último campo ( NF é a variável especial que contém o número de campos).
Se, como no seu exemplo, a variável não contiver um número, esse non-number será entendido como 0.
Portanto, var="content"; print $var é igual a var=0; print $var e, portanto, igual a print $0 , ou seja, imprime o registro inteiro.
O que você quer aqui é:
echo "foo bar" | gawk -v var="content" '{print var}'