Hi, Test script: ============ #!/bin/bash failing_function() { local foo=${1} # force bad substitution local bar=${${foo}_blah}
echo "You will never see this text!" } if [[ 1 -eq 1 ]] then # Current code path failing_function echo "I run after the failing_function!" else # Alternative code path echo "Will never run." fi # Main code path echo "Rest of the script" Actual result: ============== bash-test.sh: line 5: bar=${${foo}_blah}: bad substitution Rest of the script Expected result: ================ bash-test.sh: line 5: bar=${${foo}_blah}: bad substitution I run after the failing_function! Rest of the script Is my expectation wrong? I am really wondering that the script will continue but not in the current if clause... Tested with: > GNU bash, version 5.0.3(1)-release (x86_64-pc-linux-gnu) -- Regards, Thomas Deutschmann / Gentoo Linux Developer C4DD 695F A713 8F24 2AA1 5638 5849 7EE5 1D5D 74A5