A:
It is clear from this code fragment that
awk
is supposed to compare
$2
with
"income"
. If you think about it (or change
awk
to
echo
above), you will see that you have given the following to
awk
:
A:
{if($2==income) { /* THIS LINE IS THE PROBLEM */
A:
What does
awk
do with this? It compares
$2
with the contents of the variable
income
. If
income
has not been set, it compares it with zero or with the null string. Instead, you want:
A:
{ if ($2 == "income") {
A: which you can say with:
A:
case $col2 in income) awk ' { if ($2 == "'$col2'") { ... awk code ... } }' $file1;;
Replacing commands with
echo
in shell scripts is a handy debugging trick.
- in net.unix on Usenet, 1 November 1986