shell: remove ${#+} tests, it is not a valid construct
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
2093ad296f
commit
b0648b0e78
@ -1,6 +1,6 @@
|
|||||||
SHELL: line 1: syntax error: bad substitution
|
SHELL: line 1: syntax error: bad substitution
|
||||||
SHELL: line 1: syntax error: bad substitution
|
SHELL: line 1: syntax error: bad substitution
|
||||||
_0_ __
|
__
|
||||||
_z_ _z_
|
_z_ _z_
|
||||||
_ _ _ _ _
|
_ _ _ _ _
|
||||||
_aaaa _ _ _word _word
|
_aaaa _ _ _word _word
|
||||||
|
@ -6,8 +6,13 @@
|
|||||||
# now some funky ones.
|
# now some funky ones.
|
||||||
# ${V+word} "if V unset, then substitute nothing, else substitute word"
|
# ${V+word} "if V unset, then substitute nothing, else substitute word"
|
||||||
# ${V:+word} "if V unset or '', 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 _${#+}_ _${#:+}_
|
# ${#:+} is a :+ op on $#, but ${#+} (and any other ${#c}) is "length of $c",
|
||||||
|
# not + op on $#.
|
||||||
|
# bash and dash do not accept ${#+}. it's possible for some shell to skip
|
||||||
|
# the check that c is valid and interpret ${#+} as "len of $+". Not testing it.
|
||||||
|
# echo _${#+}_
|
||||||
|
echo _${#:+}_
|
||||||
# Forms with non-empty word work as expected in both ash and bash.
|
# Forms with non-empty word work as expected in both ash and bash.
|
||||||
echo _${#+z}_ _${#:+z}_
|
echo _${#+z}_ _${#:+z}_
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
hush: syntax error: unterminated ${name}
|
hush: syntax error: unterminated ${name}
|
||||||
hush: syntax error: unterminated ${name}
|
hush: syntax error: unterminated ${name}
|
||||||
__ __
|
__
|
||||||
_z_ _z_
|
_z_ _z_
|
||||||
_ _ _ _ _
|
_ _ _ _ _
|
||||||
_aaaa _ _ _word _word
|
_aaaa _ _ _word _word
|
||||||
|
@ -6,8 +6,13 @@
|
|||||||
# now some funky ones.
|
# now some funky ones.
|
||||||
# ${V+word} "if V unset, then substitute nothing, else substitute word"
|
# ${V+word} "if V unset, then substitute nothing, else substitute word"
|
||||||
# ${V:+word} "if V unset or '', 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 _${#+}_ _${#:+}_
|
# ${#:+} is a :+ op on $#, but ${#+} (and any other ${#c}) is "length of $c",
|
||||||
|
# not + op on $#.
|
||||||
|
# bash and dash do not accept ${#+}. it's possible for some shell to skip
|
||||||
|
# the check that c is valid and interpret ${#+} as "len of $+". Not testing it.
|
||||||
|
# echo _${#+}_
|
||||||
|
echo _${#:+}_
|
||||||
# Forms with non-empty word work as expected in both ash and bash.
|
# Forms with non-empty word work as expected in both ash and bash.
|
||||||
echo _${#+z}_ _${#:+z}_
|
echo _${#+z}_ _${#:+z}_
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user