[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: escaping arithmetic during evaluation
From: |
Paul Jarc |
Subject: |
Re: escaping arithmetic during evaluation |
Date: |
Thu, 07 Feb 2002 16:30:54 -0500 |
User-agent: |
Gnus/5.090006 (Oort Gnus v0.06) Emacs/20.7 (i386-redhat-linux-gnu) |
"Matt P." <matt@scyld.com> wrote:
> assignment: eval "${NAME}_bday="'"$BDAY"'
> evaluation: eval 'echo "$'"${NAME}"'_bday"'
>
> This solution works most cases, except when NAME contains a special
> character, eg -, as in john-doe.
>
> I have tried a couple of solutions with a \ to escape the -, but I was
> unsuccessful.
You'll have to remove those characters, possibly replacing them with
underscores:
NAME="${NAME//[!A-Za-z0-9_]/_}"
Note that this will transform all of "foo bar", "foo.bar", and
"foo%bar" (among other) into the same "foo_bar", so you won't be able
to store different bdays for all of them using this method. What you
really want are something like hash tables, but bash doesn't provide
those.
paul