Các biến được tham chiếu theo tên như trong var, không phải $vartrong awk. $nđề cập đến nthứ lĩnh vực : $1cho trường đầu tiên, $2cho phần thứ hai ... hoặc toàn bộ đăng ký cuối cùng n== 0 ( $0có đầy đủ các hồ sơ).
Những người không phải là số theo nghĩa đen. Bạn có thể sử dụng $(1+1)hoặc $variable. Nếu variablechứa 1, thì $variablesẽ là trường đầu tiên. Một trường thường được sử dụng là $NFcho trường cuối cùng ( NFlà biến đặc biệt có chứa số lượng trường).
Nếu, như trong ví dụ của bạn, biến không chứa số, số không đó được hiểu là 0.
Vì vậy var="content"; print $var, giống như var=0; print $var, và do đó, giống như print $0, đó là in toàn bộ hồ sơ.
Những gì bạn muốn ở đây là:
echo "foo bar" | gawk -v var="content" '{print var}'
$khỏi $ var