how t o read env variable in cygwin

View: New views
5 Messages — Rating Filter:   Alert me  

how t o read env variable in cygwin

by cyg_win_user :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

i m trying to read environment variable in perl using

        $OSTY = $ENV{OSTYPE};
this will return os type as "linux" or "solaris". but when i try for cygwin it returns empty string. is the some other syntax of way of finding value of env variable in cygwin

Re: how t o read env variable in cygwin

by Eric Blake :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to cyg_win_user on 3/27/2006 3:12 AM:
> i m trying to read environment variable in perl using
>
>         $OSTY = $ENV{OSTYPE};
> this will return os type as "linux" or "solaris". but when i try for cygwin
> it returns empty string. is the some other syntax of way of finding value of
> env variable in cygwin

What shell are you using?  OSTYPE is auto-set to "cygwin" by bash, but not
by other shells (including if you are starting perl directly from
cmd.com).  Rather than reading an environment variable that is not
standardized and might not be set, you could always use 'uname -s' instead.

- --
Life is short - so eat dessert first!

Eric Blake             ebb9@...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEJ/J884KuGfSFAYARAgt4AJ9Qlatz4Tmf+Xd+p2UmmGXMvHgU9QCgqGSi
SQOmKSDgd8mWnEuGwIuvzXQ=
=62NW
-----END PGP SIGNATURE-----

--
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/


RE: how t o read env variable in cygwin

by Dave Korn :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 27 March 2006 15:11, Eric Blake wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> According to cyg_win_user on 3/27/2006 3:12 AM:
>> i m trying to read environment variable in perl using
>>
>>         $OSTY = $ENV{OSTYPE};
>> this will return os type as "linux" or "solaris". but when i try for cygwin
>> it returns empty string. is the some other syntax of way of finding value
>> of env variable in cygwin
>
> What shell are you using?  OSTYPE is auto-set to "cygwin" by bash, but not
> by other shells (including if you are starting perl directly from
> cmd.com).  Rather than reading an environment variable that is not
> standardized and might not be set, you could always use 'uname -s' instead.

  I'm no perl guru, but it really looks to me like OSTYPE isn't getting
imported to perl's %ENV because it's only a Bash shell variable, not a system
environment variable.

dk@rainbow /artimi/software/firmware/build2> set | grep OSTYPE
OSTYPE=cygwin
dk@rainbow /artimi/software/firmware/build2> env | grep OSTYPE
dk@rainbow /artimi/software/firmware/build2> perl -e 'foreach $key (sort
keys(%ENV)) { print "$key = $ENV{$key}\n" ; } ' | grep OSTYPE
dk@rainbow /artimi/software/firmware/build2>


  I also find this is the case on RH8, so I don't know why the OP reckons it
works on Linux; could be some local modification to his startup profile or
anything really.  Exporting it does the trick, as you might expect:

dk@rainbow /artimi/software/firmware/build2> export OSTYPE
dk@rainbow /artimi/software/firmware/build2> env | grep OSTYPE
OSTYPE=cygwin
dk@rainbow /artimi/software/firmware/build2> perl -e 'foreach $key (sort
keys(%ENV)) { print "$key = $ENV{$key}\n" ; } ' | grep OSTYPE
OSTYPE = cygwin
dk@rainbow /artimi/software/firmware/build2>


    cheers,
      DaveK
--
Can't think of a witty .sigline today....


--
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/


Re: how t o read env variable in cygwin

by Igor Peshansky :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, 27 Mar 2006, Eric Blake wrote:

> According to cyg_win_user on 3/27/2006 3:12 AM:
> > i m trying to read environment variable in perl using
> >
> >         $OSTY = $ENV{OSTYPE};
> > this will return os type as "linux" or "solaris". but when i try for
> > cygwin it returns empty string. is the some other syntax of way of
> > finding value of env variable in cygwin
>
> What shell are you using?  OSTYPE is auto-set to "cygwin" by bash, but
> not by other shells (including if you are starting perl directly from
> cmd.com).  Rather than reading an environment variable that is not
> standardized and might not be set, you could always use 'uname -s'
> instead.

Or use Perl's builtin $^O variable, which should be auto-set to "cygwin"
(all lowercase).  "man perlvar" for more info.
        Igor
--
                                http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_    pechtcha@... | igor@...
ZZZzz /,`.-'`'    -.  ;-;;,_ Igor Peshansky, Ph.D. (name changed!)
     |,4-  ) )-,_. ,\ (  `'-' old name: Igor Pechtchanski
    '---''(_/--'  `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"Las! je suis sot... -Mais non, tu ne l'es pas, puisque tu t'en rends compte."
"But no -- you are no fool; you call yourself a fool, there's proof enough in
that!" -- Rostand, "Cyrano de Bergerac"

--
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/


Re: how t o read env variable in cygwin

by Yitzchak Scott-Thoennes :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, Mar 27, 2006 at 10:12:01AM -0500, Igor Peshansky wrote:

> On Mon, 27 Mar 2006, Eric Blake wrote:
>
> > According to cyg_win_user on 3/27/2006 3:12 AM:
> > > i m trying to read environment variable in perl using
> > >
> > >         $OSTY = $ENV{OSTYPE};
> > > this will return os type as "linux" or "solaris". but when i try for
> > > cygwin it returns empty string. is the some other syntax of way of
> > > finding value of env variable in cygwin
> >
> > What shell are you using?  OSTYPE is auto-set to "cygwin" by bash, but
> > not by other shells (including if you are starting perl directly from
> > cmd.com).  Rather than reading an environment variable that is not
> > standardized and might not be set, you could always use 'uname -s'
> > instead.
>
> Or use Perl's builtin $^O variable, which should be auto-set to "cygwin"
> (all lowercase).  "man perlvar" for more info.

All the possible values of $^O are listed in man perlport.

--
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/