shell: remove ${#+} tests, it is not a valid construct
No binary (build failed)
—
(log yok)
| @@ -1,6 +1,6 @@ | |
| SHELL: line 1: syntax error: bad substitution | |
| SHELL: line 1: syntax error: bad substitution | |
| - | _0_ __ |
| + | __ |
| _z_ _z_ | |
| _ _ _ _ _ | |
| _aaaa _ _ _word _word | |
| @@ -6,8 +6,13 @@ | |
| # 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 _${#+}_ _${#:+}_ |
| + | # |
| + | # ${#:+} 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. | |
| echo _${#+z}_ _${#:+z}_ | |
| @@ -1,6 +1,6 @@ | |
| hush: syntax error: unterminated ${name} | |
| hush: syntax error: unterminated ${name} | |
| - | __ __ |
| + | __ |
| _z_ _z_ | |
| _ _ _ _ _ | |
| _aaaa _ _ _word _word | |
| @@ -6,8 +6,13 @@ | |
| # 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 _${#+}_ _${#:+}_ |
| + | # |
| + | # ${#:+} 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. | |
| echo _${#+z}_ _${#:+z}_ | |