diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2017-07-25 14:55:05 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2017-07-25 14:55:05 +0200 |
commit | 64925384c9cf5e0d986e183577da286bb3207ce7 (patch) | |
tree | 47688edcf2c0d987800968a9e9d85fc2cd0741e5 /shell/ash_test/ash-vars/param_expand_alt.tests | |
parent | 73c47f6c41c97fb452b4747088543f2c2166830a (diff) |
ash: add a few tests from hush-vars/*
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/ash_test/ash-vars/param_expand_alt.tests')
-rwxr-xr-x | shell/ash_test/ash-vars/param_expand_alt.tests | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/shell/ash_test/ash-vars/param_expand_alt.tests b/shell/ash_test/ash-vars/param_expand_alt.tests new file mode 100755 index 000000000..c9c4249af --- /dev/null +++ b/shell/ash_test/ash-vars/param_expand_alt.tests @@ -0,0 +1,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 $#). +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} |