# do all of these in subshells since it's supposed to error out # first try some invalid patterns hush -c 'echo ${?}' hush -c 'echo ${:?}' # then some funky ones hush -c 'echo ${#?}' hush -c 'echo ${#:?}' # now some valid ones hush -c 'set --; echo _$1' hush -c 'set --; echo _${1?}' hush -c 'set --; echo _${1:?}' hush -c 'set --; echo _${1?word}' hush -c 'set --; echo _${1:?word}' hush -c 'set -- aaaa; echo _$1' hush -c 'set -- aaaa; echo _${1?}' hush -c 'set -- aaaa; echo _${1:?}' hush -c 'set -- aaaa; echo _${1?word}' hush -c 'set -- aaaa; echo _${1:?word}' hush -c 'unset f; echo _$f' hush -c 'unset f; echo _${f?}' hush -c 'unset f; echo _${f:?}' hush -c 'unset f; echo _${f?word}' hush -c 'unset f; echo _${f:?word}' hush -c 'f=; echo _$f' hush -c 'f=; echo _${f?}' hush -c 'f=; echo _${f:?}' hush -c 'f=; echo _${f?word}' hush -c 'f=; echo _${f:?word}' hush -c 'f=fff; echo _$f' hush -c 'f=fff; echo _${f?}' hush -c 'f=fff; echo _${f:?}' hush -c 'f=fff; echo _${f?word}' hush -c 'f=fff; echo _${f:?word}'