[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash scripts and files



On Mon, 2007-12-31 at 18:51 +0000, Tyler Smith wrote:
> On 2007-12-31, michael <cs@networkingnewsletter.org.uk> wrote:
> >
> > Thanks, probably the previous chapter ("she-bang") was of more use  
> > but a useful ref. However, I'm still trying to understand why it's  
> > not usual to have a she-bang for the .bash_profile and .bashrc files.  
> > That documentation reads as if it's expected - they are scripts and  
> > contain shell specific syntax.
> 
> Regular shell scripts could be called from any number of places. If
> you're running a bash shell, you could run a csh or zsh or python
> script. Similarly any of these scripts could be called from another
> process, such as from a program written in C, or Lisp, or whatever. In
> any of these cases the language of the script has no relation to the
> environment it is called from. All the caller knows is that they are
> executable files - any details are hidden. That means the pertinent
> information needs to be stored in the script itself, and that has to
> happen on the first line so the proper interpreter is invoked.
> 
> Imagine what would happen if you didn't do this. You call a script
> from your terminal running bash, and that script is written in Perl.
> Without the #! the terminal could either assume it's written in bash,
> and choke on the syntax, or try and guess the language, which gets
> hairy very quickly.

Yes, all this I understand and appreciate


> 
> .bashrc and .bash_profile are different. They are only reasonably
> invoked by a bash shell, so it is safe to assume they are written
> using bash syntax. They are, after all, configuration files for bash,
> so what other language would they be written in?

"reasonably"?!
and where is it stated they are different?
surely they should have the !# at the start too
it's this implicitness that upsets me!



Reply to: