|  | # first try some invalid patterns (do in subshell due to parsing error) | 
|  | "$THIS_SH" -c 'echo ${=}' | 
|  | "$THIS_SH" -c 'echo ${:=}' | 
|  |  | 
|  | # now some funky ones | 
|  | "$THIS_SH" -c 'echo ${#=}' | 
|  | "$THIS_SH" -c 'echo ${#:=}' | 
|  |  | 
|  | # should error out | 
|  | "$THIS_SH" -c 'set --; echo _${1=}' | 
|  | "$THIS_SH" -c 'set --; echo _${1:=}' | 
|  | "$THIS_SH" -c 'set --; echo _${1=word}' | 
|  | "$THIS_SH" -c 'set --; echo _${1:=word}' | 
|  |  | 
|  | # should not error | 
|  | "$THIS_SH" -c 'set aa; echo _${1=}' | 
|  | "$THIS_SH" -c 'set aa; echo _${1:=}' | 
|  | "$THIS_SH" -c 'set aa; echo _${1=word}' | 
|  | "$THIS_SH" -c 'set aa; echo _${1:=word}' | 
|  |  | 
|  | # should work fine | 
|  | unset f; echo _$f | 
|  | unset f; echo _${f=} | 
|  | unset f; echo _${f:=} | 
|  | unset f; echo _${f=word} | 
|  | unset f; echo _${f:=word} | 
|  |  | 
|  | f=; echo _$f | 
|  | f=; echo _${f=} | 
|  | f=; echo _${f:=} | 
|  | f=; echo _${f=word} | 
|  | f=; echo _${f:=word} | 
|  |  | 
|  | f=fff; echo _$f | 
|  | f=fff; echo _${f=} | 
|  | f=fff; echo _${f:=} | 
|  | f=fff; echo _${f=word} | 
|  | f=fff; echo _${f:=word} |