Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #11663
| Path | csiph.com!xmission!news.glorb.com!usenet.stanford.edu!not-for-mail |
|---|---|
| From | Mike Frysinger <vapier@gentoo.org> |
| Newsgroups | gnu.bash.bug |
| Subject | updating shopt compat settings to include current version |
| Date | Thu, 15 Oct 2015 13:34:33 -0400 |
| Lines | 77 |
| Approved | bug-bash@gnu.org |
| Message-ID | <mailman.403.1444930560.7904.bug-bash@gnu.org> (permalink) |
| NNTP-Posting-Host | lists.gnu.org |
| Mime-Version | 1.0 |
| Content-Type | multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="GDLQamdgIxhPcIwq" |
| X-Trace | usenet.stanford.edu 1444930560 27233 208.118.235.17 (15 Oct 2015 17:36:00 GMT) |
| X-Complaints-To | action@cs.stanford.edu |
| To | bug-bash@gnu.org |
| Envelope-to | bug-bash@gnu.org |
| Mail-Followup-To | bug-bash@gnu.org |
| Content-Disposition | inline |
| X-detected-operating-system | by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] |
| X-Received-From | 140.211.166.183 |
| X-BeenThere | bug-bash@gnu.org |
| X-Mailman-Version | 2.1.14 |
| Precedence | list |
| List-Id | Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org> |
| List-Unsubscribe | <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe> |
| List-Archive | <http://lists.gnu.org/archive/html/bug-bash> |
| List-Post | <mailto:bug-bash@gnu.org> |
| List-Help | <mailto:bug-bash-request@gnu.org?subject=help> |
| List-Subscribe | <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe> |
| Xref | csiph.com gnu.bash.bug:11663 |
Show key headers only | View raw
[Multipart message — attachments visible in raw view] - view raw
with bash-4.0, new compat options were introduced:
shopt -s compat32
and with bash-4.3, a variable was added:
export BASH_COMPAT=3.2
but things get a little weird when you want to set the compat level to
the current version:
$ echo $BASH_VERSION
4.3.42(1)-release
$ shopt -s compat43
bash: shopt: compat43: invalid shell option name
$ export BASH_COMPAT=4.3
<no error as DEFAULT_COMPAT_LEVEL is 43>
we're interested in this in Gentoo because we want to set the current
shell compat level to a min version even if that version is the active
one. ideally it'd be:
if ! shopt -s compat43 ; then
echo "error: >=bash-4.3 required, but ${BASH_VERSION} found" >&2
exit 1
fi
instead we have to probe the active version ourselves:
if ! shopt -s compat43 ; then
if [[ ${BASH_VERSINFO[0]} -ne "4" || ${BASH_VERSINFO[1]} -ne "3" ]] ; then
echo ...
exit 1
fi
fi
the BASH_COMPAT variable isn't as useful:
- possible to accidentally export and impact other shell scripts
- doesn't fail for <bash-4.3 versions
- when set to a bad value, $? is set to 0
- need to capture & test stderr
which means you end up with:
if ([[ -n $( (BASH_COMPAT=4.3) 2>&1 ) ]] ||
[[ ${BASH_VERSINFO[0]} -lt 4 ]] ||
[[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -lt 3 ]]) ; then
echo ...
exit 1
fi
BASH_COMPAT=4.3
so my request is simple: can we have compatXY added for the current version ?
so in the upcoming bash-4.4 release, get a compat44 option added.
-mike
Back to gnu.bash.bug | Previous | Next | Find similar
updating shopt compat settings to include current version Mike Frysinger <vapier@gentoo.org> - 2015-10-15 13:34 -0400
csiph-web