[EMAIL PROTECTED] wrote:
-------
Message: 1
Date: Tue, 10 Oct 2006 16:08:05 -0500
From: mwoehlke <[EMAIL PROTECTED]>
Subject: How to detect bash?
To: bug-bash@gnu.org
Message-ID: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Anyone have any clever, VERY reliable tricks for detecting if the
current shell is bash? The obvious way is '[ -n "$BASH" ]', but in the
interest of catching idiots that set BASH to get around such a check, I
came up with:
[ "`BASH_SUBSHELL=975 ; ( echo $BASH_SUBSHELL )`" -eq 976 ]
(975 is of course an arbitrary number.)
Anyone think they know a better way (or a reason the above might not
work)? I'm guessing it can still be circumvented*, but one would have to
be specifically making an effort to do so.
(* Actually, I'm not 100% certain it can; you have to be able to run a
script upon sub-shell startup. I'm assuming that can be done, but maybe
I'm wrong...)
I have this. I don't like it, but I don't know any better.
getshelltype ()
{
#
# unfortunately, using set -o options doesn't work here
#
if typeset -Z a 2> /dev/null; then
echo ksh
else
echo bash
fi
}
_______________________________________________
Bug-bash mailing list
Bug-bash@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-bash