# This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # problems with non-fatal expansion errors through bash-4.3 : ${THIS_SH:=./bash} ${THIS_SH} -c 'echo ${x!y} second echo after 1: $?' 2>/dev/null ${THIS_SH} -c 'echo ${#+} second echo after 2: $?' 2>/dev/null ${THIS_SH} -c 'echo ${#foo%} second echo after 3: $?' 2>/dev/null ${THIS_SH} -c 'b[0]=4 ; echo ${b[ ]} echo array after 1: $?' 2>/dev/null ${THIS_SH} -c 'typeset -A v ; v["0"]=one ; echo ${v[ ]} echo array after 2: $?' 2>/dev/null ${THIS_SH} -c 'echo ${uvar?}' ./errors6.sub ${THIS_SH} -c 'echo ${uvar:?}' ./errors6.sub export uvar= ${THIS_SH} -c 'echo ${uvar?}' ./errors6.sub ${THIS_SH} -c 'echo ${uvar:?}' ./errors6.sub unset uvar echo "${-3:-${-3}}" echo ${-3} x=-3; echo ${!x} echo after indir: $? function ivar() { echo -n "${!1:-${1}}"; } ivar -3 foo=bar echo ${!foo} echo ${!foo:-unset} echo ${!var:-unset} echo ${!var+unset} foo=invalid-ident echo ${!foo} echo ${!foo:-unset} echo ${!foo+unset}