Mailing List Archive


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

Re: [tlug] Bashing away at Unix



On Fri, Mar 14, 2008 at 08:57:41AM -0400, Scott Robbins wrote:
> On Fri, Mar 14, 2008 at 08:09:58PM +0900, Josh wrote:
> > On 14/03/2008, SL Baur <steve@example.com> wrote:
> > 
> > > Yes.  When zsh is invoked as sh, it turns off *all* zsh extensions and
> > >  behaves as a conformant POSIX shell.
> > 
> > I don't believe in using bash-isms in my shell scripts, which is why I write:
> > 
> > #!/bin/sh
> > 
> > and not
> > 
> > #!/bin/bash
> 
> Unfortunately, despite the claims of the man page, it's still often not
> POSIX compliant.  

The POSIX definition of "/bin/sh" is a lot closer to ksh than most
UNIX's actual /bin/sh actually comes.

When I write a shell script that starts with #!/bin/sh, I set my
baseline a lot lower than is probably really necessary, because I
believe in playing it safe rather than sorry.

To wit: I expect absolutly no ${variable}:modifier tricks to work ever.
I expect [ to be a command, possibly running as a separate process.
I expect [[ to not work ever.
I expect $(( and $[ not not work at all.  If I want that, I use expr.
I expect $( not to work at all either.

Basically, #!/bin/sh makes me set the bar REALLY REALLY low.  Doing so
has not done me any damage yet.

On the other hand, my interactive shell on my own home box is the very
latest version of zsh.  When writing zsh scripts that I know will be
running in the latest version of zsh, I just go nuts, and use every last
convenience that zsh cares to offer me.  And, man, does it ever feel
awesome to do that.  Kind of like programming in Ruby 1.9 after being
stuck with an ancient awk for years and years.

--Dave


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links