[OS X TeX] can't find files in /usr/local/tetex/bin/

Stefan Walsen stefan at walsen.net
Fri Apr 9 07:04:16 EDT 2004

Justin Walker wrote:
> On Apr 8, 2004, at 17:06, Stefan Walsen wrote:
>> That depends on several things:
>> If the first line is "#!/bin/bash", it'll be run by bash and 
>> everything will work fine.
> That is true; what I was pointing out is that you (or, at least, I) 
> don't know that, within the environment where that shell script is 
> executing, the variable SHELL will be set to '/bin/bash', or perhaps, 
> the environment inherits the setting of SHELL from the shell that 
> invoked the shell script in the first place.

Ah, OK. That's definitely not what I thought we were talking about :)

The value of $SHELL is indeed inherited from the parent process.
So when somewhere SHELL is set to '/bin/bash', and afterwards you call 
"tcsh <script>", SHELL will still be '/bin/bash'. BUT from inside your 
script, $0 also doesn't give you the answer you're looking for, as that 
will be the name of the script itself unless you called it with "source 

> My main point is that trying to nail down the shell that you are 
> executing under is tricky.  Relying on SHELL is probably not a good 
> thing.  I don't, however, have a definitive answer.
> [...]
> 'bash' and 'tcsh' often masquerade as 'sh' and 'csh', respectively, so 
> this [echo $0] check isn't definitive either.

Of course, and as I just said, it doesn't work at all from inside a 
script. The only reasonable way to make sure what shell you are 
executing under _as a script_ is to explicitly state which one you want 
it to be by putting the "#!"-line in front of it.

Whether you get "the real sh" or just a symlink to bash doesn't matter 
in this case, because bash behaves just as sh would when called with 
this name. I don't know about tcsh, but i'd expect the same.

Please see <http://www.esm.psu.edu/mac-tex/> for list
guidelines, information, and LaTeX/TeX resources.

More information about the MacOSX-TeX mailing list