Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re: Re: UNIX environment setup via perl

by haoess (Curate)
on May 07, 2004 at 16:22 UTC ( #351511=note: print w/ replies, xml ) Need Help??

in reply to Re: UNIX environment setup via perl
in thread UNIX environment setup via perl

> You should check for $ENV{SHELL} and emit "setenv VAR VALUE"
> lines if appropriate.

$ENV{SHELL} is not a way to determine your current shell. $ENV{SHELL} is your »preferred shell« (aka login shell in /etc/passwd), see The Single UNIX Specification, Version 3.


# we are in bash, all is fine $ eval `perl -le 'print $ENV{SHELL} =~ /csh/ ? "setenv FOO bar" : "exp +ort FOO=bar"'` # now we switch to tcsh $ tcsh $ eval `perl -le 'print $ENV{SHELL} =~ /csh/ ? "setenv FOO bar" : "exp +ort FOO=bar"'` $ export: Command not found. $ echo $SHELL /bin/bash

It seems that there is no portable way to find out the name of your current shell. We discussed that some time ago at

Comment on Re: Re: UNIX environment setup via perl
Download Code
Replies are listed 'Best First'.
Re: Re: Re: UNIX environment setup via perl
by eserte (Deacon) on May 07, 2004 at 17:24 UTC
    Looking at $ENV{SHELL} is probably the best we can do --- other programs seem to do it the same way (and therefore do it wrong):
    $ env SHELL=/bin/sh ssh-agent SSH_AUTH_SOCK=/tmp/ssh-XXN54U4g/agent.3950; export SSH_AUTH_SOCK; SSH_AGENT_PID=3951; export SSH_AGENT_PID; echo Agent pid 3951;
    $ env SHELL=/bin/tcsh ssh-agent setenv SSH_AUTH_SOCK /tmp/ssh-XXPC7hgb/agent.3948; setenv SSH_AGENT_PID 3949; echo Agent pid 3949;
    Similar output for /usr/X11/bin/resize

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://351511]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2016-04-30 04:02 GMT
Find Nodes?
    Voting Booth?
    :nehw tseb si esrever ni gnitirW

    Results (441 votes). Check out past polls.