Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #11663
| From | Mike Frysinger <vapier@gentoo.org> |
|---|---|
| Newsgroups | gnu.bash.bug |
| Subject | updating shopt compat settings to include current version |
| Date | 2015-10-15 13:34 -0400 |
| Message-ID | <mailman.403.1444930560.7904.bug-bash@gnu.org> (permalink) |
[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