2093ad296f
function old new delta parse_dollar 786 820 +34 expand_one_var 1579 1592 +13 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 47/0) Total: 47 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
29 lines
885 B
Plaintext
Executable File
29 lines
885 B
Plaintext
Executable File
# 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 ${+} ; echo moo' SHELL
|
|
"$THIS_SH" -c 'echo ${:+} ; echo moo' SHELL
|
|
|
|
# now some funky ones.
|
|
# ${V+word} "if V unset, then substitute nothing, else substitute word"
|
|
# ${V:+word} "if V unset or '', then substitute nothing, else substitute word"
|
|
# bash doesn't accept ${#+}. ash prints 0 (not $#): "len of $+"
|
|
echo _${#+}_ _${#:+}_
|
|
# Forms with non-empty word work as expected in both ash and bash.
|
|
echo _${#+z}_ _${#:+z}_
|
|
|
|
# now some valid ones
|
|
set --
|
|
echo _$1 _${1+} _${1:+} _${1+word} _${1:+word}
|
|
|
|
set -- aaaa
|
|
echo _$1 _${1+} _${1:+} _${1+word} _${1:+word}
|
|
|
|
unset f
|
|
echo _$f _${f+} _${f:+} _${f+word} _${f:+word}
|
|
|
|
f=
|
|
echo _$f _${f+} _${f:+} _${f+word} _${f:+word}
|
|
|
|
f=fff
|
|
echo _$f _${f+} _${f:+} _${f+word} _${f:+word}
|