-------
Message: 1
Date: Tue, 10 Oct 2006 16:08:05 -0500
From: mwoehlke <mwoehlke@tibco.com>
Subject: How to detect bash?
To: bug-bash@gnu.org
Message-ID: <egh23l$i6c$1@sea.gmane.org>
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...)