| # This test demonstrates that in unquoted $v, backslashes expand by this rule: |
| # \z -> \\\z; \<eol> -> \\<eol> (for any z, special or not), |
| # and subsequently globbing converts \\ to \ and treats \z as literal z |
| # even if it is a special char. |
| |
| >'Zf' |
| >'Z\f' |
| echo 'Expected' 'Actual' |
| v='\*'; echo 'Z\* :' Z$v # ash is buggy here: prints 'Z\f' |
| echo 'Z* :' Z\* |
| echo 'Z\f :' Z\\* |
| echo 'Z\* :' Z\\\* # NB! only this matches Z$v output |
| echo |
| v='\z'; echo 'Z\z :' Z$v |
| echo 'Zz :' Z\z |
| echo 'Z\z :' Z\\z |
| echo 'Z\z :' Z\\\z |
| echo |
| v='\'; echo 'Z\ :' Z$v |
| echo 'Z\ :' Z\\ |
| echo |
| v='*'; echo 'Z\f Zf :' Z$v |
| echo 'Z\f Zf :' Z* |
| echo |
| |
| rm 'Z\f' 'Zf' |
| echo Done: $? |