aboutsummaryrefslogtreecommitdiff
path: root/bash/bashrc
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2018-11-30 14:17:01 +1300
committerTom Ryder <tom@sanctum.geek.nz>2018-11-30 14:17:01 +1300
commitf02abc131991a754a9aabed14c6acdbed253a1de (patch)
tree800027c8a3460f911a68db65bf330a2fbcf471e7 /bash/bashrc
parentMerge branch 'hotfix/v2.1.1' (diff)
parentBump VERSION (diff)
downloaddotfiles-2.2.0.tar.gz (sig)
dotfiles-2.2.0.zip
Merge branch 'release/v2.2.0'v2.2.0
* release/v2.2.0: Bump VERSION Add `abort` attribute to new autoload function Suppress a couple of ShellCheck errors Remove redundant return short-circuit Add explanatory comments for version check Use ||/&& short-circuiting only for flow control Drop support for Bash <= 3.0
Diffstat (limited to 'bash/bashrc')
-rw-r--r--bash/bashrc27
1 files changed, 15 insertions, 12 deletions
diff --git a/bash/bashrc b/bash/bashrc
index 8462e5c2..dcf3df53 100644
--- a/bash/bashrc
+++ b/bash/bashrc
@@ -6,8 +6,9 @@ esac
# Don't do anything if restricted, not even sourcing the ENV file
# Testing $- for "r" doesn't work
-# shellcheck disable=SC2128
-[ -n "$BASH_VERSINFO" ] && shopt -q restricted_shell && return
+if shopt -q restricted_shell >/dev/null 2>&1 ; then
+ return
+fi
# Clear away all aliases; we do this here rather than in the $ENV file shared
# between POSIX shells, because ksh relies on aliases to implement certain
@@ -16,16 +17,14 @@ unalias -a
# If ENV is set, source it to get all the POSIX-compatible interactive stuff;
# we should be able to do this even if we're running a truly ancient Bash
-[ -n "$ENV" ] && . "$ENV"
+if [ -n "$ENV" ] ; then
+ . "$ENV"
+fi
-# Ensure we're using at least version 2.05. Weird arithmetic syntax needed here
-# due to leading zeroes and trailing letters in some 2.x version numbers (e.g.
-# 2.05a).
+# Ensure we're using at least version 3.0
# shellcheck disable=SC2128
-[ -n "$BASH_VERSINFO" ] || return
-((BASH_VERSINFO[0] == 2)) &&
- ((10#${BASH_VERSINFO[1]%%[!0-9]*} < 5)) &&
- return
+[ -n "$BASH_VERSINFO" ] || return # Check version array exists (>=2.0)
+((BASH_VERSINFO[0] >= 3)) || return # Check actual major version number
# Clear away command_not_found_handle if a system bashrc file set it up
unset -f command_not_found_handle
@@ -86,11 +85,15 @@ if ((BASH_VERSINFO[0] >= 4)) ; then
# Warn me about stopped jobs when exiting
# Available since 4.0, but only set it if >=4.1 due to bug:
# <https://lists.gnu.org/archive/html/bug-bash/2009-02/msg00176.html>
- ((BASH_VERSINFO[1] >= 1)) && shopt -s checkjobs
+ if ((BASH_VERSINFO[1] >= 1)) ; then
+ shopt -s checkjobs
+ fi
# Expand variables in directory completion
# Only available since 4.3
- ((BASH_VERSINFO[1] >= 3)) && shopt -s direxpand
+ if ((BASH_VERSINFO[1] >= 3)) ; then
+ shopt -s direxpand
+ fi
fi
# Load Bash-specific startup files