Date: Fri, 1 Mar 1996 22:49:48 -0700 (MST) From: Don Yuniskis <dgy@rtd.com> To: freebsd-hackers@freefall.FreeBSD.org (FreeBSD hackers) Subject: /bin/sh tickler... Message-ID: <199603020549.WAA05932@seagull.rtd.com>
next in thread | raw e-mail | index | archive | help
Greetings, Earthlings (and those of you in the back row, too)!
Apologies in advance for bothering the list with this one but I
couldn't think of a more knowledgable group to pass it by (how's
that for "sucking up"???) ;-)
I was recently writing a few shell scripts and couldn't seem
to find a mechanism for processing tabs within a script! Since
tabs are *so* pervasive, I can't imagine this is impossible. Yet,
I can't find a way to do it...
I started out with something like (not *really* this brainless...):
foo=`cat $bar | awk -- '/pattern/ { print "field1 field2" }'`
bar=`echo $foo | cut -f2`
echo $bar
which, curiously, choked because the tab between field1 and field2
had been replaced by a space. Replacing it with a '\t' didn't help,
either.
In playing with this, I've noted even simpler test cases that
yield "unexpected" results:
foo="a tab"
bar='a tab'
echo $foo
echo $bar
and, different shells respond differently (which, I guess, is to be
expected to some degree).
I've since found a workaround for my original problem but this
one just nags at me begging for understanding. I suspect it has to
do with the "substitution" performed by the shell in evaluating
these things.
But, as I imagine this will bite me again at some time in the
future, I'd appreciate any words of wisdom/experience which could
help me avoid the same no-brainer mistake in the future.
Thx,
--don
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199603020549.WAA05932>
