| # First try some invalid patterns. Do in subshell due to parsing error. |
| # (set argv0 to "SHELL" to avoid "/path/to/shell: blah" in error messages) |
| "$THIS_SH" -c 'echo ${=}' SHELL |
| "$THIS_SH" -c 'echo ${:=}' SHELL |
| |
| # now some funky ones |
| "$THIS_SH" -c 'echo ${#=}' SHELL |
| "$THIS_SH" -c 'echo ${#:=}' SHELL |
| |
| # should error out |
| "$THIS_SH" -c 'set --; echo _${1=}' SHELL |
| "$THIS_SH" -c 'set --; echo _${1:=}' SHELL |
| "$THIS_SH" -c 'set --; echo _${1=word}' SHELL |
| "$THIS_SH" -c 'set --; echo _${1:=word}' SHELL |
| |
| # should not error |
| "$THIS_SH" -c 'set aa; echo _${1=}' SHELL |
| "$THIS_SH" -c 'set aa; echo _${1:=}' SHELL |
| "$THIS_SH" -c 'set aa; echo _${1=word}' SHELL |
| "$THIS_SH" -c 'set aa; echo _${1:=word}' SHELL |
| |
| # 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} |