[SunHELP] Shell Problem
Bruce Pullig
sunhelp at sunhelp.org
Tue Apr 17 10:05:05 CDT 2001
Take a look at what I got below:
itdm14:bpullig> echo $SHELL
/bin/csh
itdm14:bpullig> echo $shell
/usr/bin/tcsh
itdm14:bpullig>
--
* * * * * * * * * * * * * * * * * * * * *
Bruce Pullig, CSA, CNA, MCPS
Senior Systems Administrator
GeoQuest DMC
5444 Westheimer, Suite 800
Houston, TX 77056
(713) 350-4217
bpullig at houston.geoquest.slb.com
* * * * * * * * * * * * * * * * * * * * *
Nicholas Dronen wrote:
>
> The Bourne and Korn shells set $SHELL. The C shell sets $shell.
> But perhaps we're getting ahead of ourselves. What are you
> trying to do, really? I think I know, but you don't say
> exactly.
>
> If you want to change a user's environment from within a shell
> script such that the environment will remain changed after
> the script "exits," you *must* have the user source the file
> so it's run in the current shell.
>
> Bourne and Korn shell syntax:
>
> $ . [ file ]
>
> C shell syntax
>
> % source [ file ]
>
> I think this covers the first part of your confusion. The second
> part is this: since Bourne/Korn and the C shell use different syntax
> for setting environment variables, you need to know which shell
> the user is using in order to know which syntax to use, but in order
> to know which shell the user is using, you need to use either Bourne/Korn
> shell or C shell syntax to check the SHELL or shell environment variables
> (which isn't actually reliable anyway) or to run a command or whatever,
> so you're pretty much stuck.
>
> And you are stuck.
>
> What you *should* do is require that the user *source* a shell script
> that is named so they can tell which one is intended for them, say,
> a C shell user. "Hi. I use the C shell. I source foo.csh in order
> to set environment variables for application X."
>
> Mind you, this is just a guess.
>
> If the values of the environment variables do not need to survive
> the execution of the script, then just call the script! :)
>
> Regards,
>
> Nicholas Dronen
>
> On Mon, Apr 16, 2001 at 05:23:31PM -0700, Naresh Narang wrote:
> > Hi
> >
> > I want to set up env. variables based upon the shell a user is running, so in order to find what shell a user is using, I have to run a script in a Shell say /bin/sh. If I run it using #!/bin/sh to find user's shell, every shell behaves differently or if I use other methods to find shell then how do I use that shell to set env variable that can be read by user's shell and other statements are ignored.
> >
> > Basically I want a general script that can set env variables based on user's shell syntex.
> >
> > Any help is appreciated.
> >
> > Thanks
> > Naresh
> >
> > -- Naresh
> > ______________________________________________________
> > 123India.com - India's Premier Portal
> > Get your Free Email Account at http://www.123india.com
> >
> >
> > _______________________________________________
> > SunHELP maillist - SunHELP at sunhelp.org
> > http://www.sunhelp.org/mailman/listinfo/sunhelp
> _______________________________________________
> SunHELP maillist - SunHELP at sunhelp.org
> http://www.sunhelp.org/mailman/listinfo/sunhelp
More information about the SunHELP
mailing list