aboutsummaryrefslogtreecommitdiff
path: root/shell/ash_test/ash-vars/param_expand_alt.tests
blob: d80452434b8db7dfa76a32b53a25a91241ef956e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 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}