Am 02.01.19 um 00:19 schrieb SZEDER Gábor:
Alas, it has been reported that NetBSD's /bin/sh does complain about them: ./test-lib.sh: 327: Syntax error: Bad substitution where line 327 contains the first ${BASH_VERSINFO[0]} array access.
diff --git a/t/test-lib.sh b/t/test-lib.sh index 0f1faa24b2..f47a191e3b 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -324,9 +324,12 @@ do # isn't executed with a suitable Bash version. if test -z "$test_untraceable" || { test -n "$BASH_VERSION" && { - test ${BASH_VERSINFO[0]} -gt 4 || { - test ${BASH_VERSINFO[0]} -eq 4 && - test ${BASH_VERSINFO[1]} -ge 1 + bash_major=${BASH_VERSION%%.*} + bash_minor=${BASH_VERSION#*.} + bash_minor=${bash_minor%%.*} + test $bash_major -gt 4 || { + test $bash_major -eq 4 && + test $bash_minor -ge 1 } } }
Would it perhaps be simpler to just hide the syntax behind eval? Like if test -z "$test_untraceable" || { test -n "$BASH_VERSION" && eval ' test ${BASH_VERSINFO[0]} -gt 4 || { test ${BASH_VERSINFO[0]} -eq 4 && test ${BASH_VERSINFO[1]} -ge 1 } ' -- Hannes