On 10/27/12 00:47, Phil Pennock wrote:
> Is there a good way to detect the shell as being the variant which is
> missing "local"? Failing that, is there a portable OS detection means
> which will pick up all of the OpenIndiana/Illumos/SmartOS variants so
> that we can alias local on just those? Something from uname(1) ?
>
> Out of curiosity: what shell is the basis for the /bin/sh on these
> systems, and what is its history? If /usr/xpg4/bin has gone then I'm
> hoping this means that OpenIndiana has chosen to make /bin/sh be POSIX
> but I'm bemused at the choice of a POSIX shell which is so different to
> every other, to missing the most common extensions of BSD sh, dash, etc.
I just checked this on Solaris 11 and there is it fine. So it appears to
be an issue with OpenInidiana where the shell is ksh93 and is lacking
the local keyword:
ls -l /usr/xpg4/bin/sh
lrwxrwxrwx 1 root root 15 Oct 22 2011 /usr/xpg4/bin/sh
-> ../../bin/ksh93
the only shell on OpenIndiana that has support for the local keyword
appears to be bash. looks like this is an artifact of the history of OI.
The only shell it has that recognises the local keyword is bash.
--chris