X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-0.3 required=5.0 tests=AWL,BAYES_50 X-Spam-Check-By: sourceware.org Date: Sun, 21 Dec 2008 18:06:21 +0200 Message-Id: <200812211606.mBLG6LX2014401@beta.mvs.co.il> From: "Ehud Karni" To: ebb9 AT byu DOT net Cc: cygwin AT cygwin DOT com, steve DOT rainbird AT mssint DOT com Subject: Re: Unusual environemtal variables In-reply-to: <494BA56A.7070009@byu.net> (message from Eric Blake on Fri, 19 Dec 2008 06:45:14 -0700) Reply-to: ehud AT unix DOT mvs DOT co DOT il References: <494BA56A DOT 7070009 AT byu DOT net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Fri, 19 Dec 2008 06:45:14 -0700, Eric Blake 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 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/