Subject: Re: Unusual environemtal variables
From: "Ehud Karni" <[email-masked]>
To: [email-masked]
Cc: [email-masked], [email-masked]
Date: Sun, 21 Dec 2008 18:06:21 +0200
List-Id: <cygwin.cygwin.com>

On Fri, 19 Dec 2008 06:45:14 -0700, Eric Blake <[email-masked]> wrote:
>
> According to Steve Rainbird on 12/19/2008 2:22 AM:
> SR:> When i run a Fuijitsu Cobol program it requires environmental variables
> SR:> starting with the @ sign.
>
> That is inherently non-portable.  POSIX states that "Other characters may
> be permitted by an implementation; applications shall tolerate the
> presence of such names," but does not require applications to be able to
> create such names.
>
> http://www.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08
>
> SR:>
> SR:> Is there any way around this?
>
> You'll have to set it in Windows, prior to starting bash, as there is no
> way to make bash create variables not starting with something from the
> portable set [_a-zA-Z].

This behavior (accepting names of only ASCII Alpha and _) is a bash self
imposed limitation. If you use csh (or tcsh) names with other characters
are supported too.

So you can use csh's: setenv "@FOO" "value".
You can also use the env command to bypass bash limitation like this:
    exec env "@FOO=bar" exec /bin/bash -i
Note the 2 `exec' if you do not want to spawn more processes.

Ehud.

--
 Ehud Karni           Tel: +972-3-7966-561  /"\
 Mivtach - Simon      Fax: +972-3-7966-667  \ /  ASCII Ribbon Campaign
 Insurance agencies   (USA) voice mail and   X   Against   HTML   Mail
 http://www.mvs.co.il  FAX:  1-815-5509341  / \
 GnuPG: 98EA398D <http://www.keyserver.net/>    Better Safe Than Sorry

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/