hush: implement negative start in the ${v: -n[:m]} idiom

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2017-07-06 19:48:20 +02:00
parent 3234045d07
commit 5dad7bdc3b
5 changed files with 37 additions and 2 deletions

View File

@@ -0,0 +1,6 @@
parameter 'abcdef'
varoffset2 'cdef'
varoffset-2 'ef'
literal '2' 'cdef'
literal '-2' 'abcdef'
literal ' -2' 'ef'

View File

@@ -0,0 +1,11 @@
parameter=abcdef
offset=2
noffset=-2
echo "parameter '${parameter}'"
echo "varoffset2 '${parameter:${offset}}'"
echo "varoffset-2 '${parameter:${noffset}}'"
echo "literal '2' '${parameter:2}'"
# This is not inrpreted as ${VAR:POS{:LEN}},
# but as ${VAR:=WORD} - if VAR is unset or null, substitute WORD
echo "literal '-2' '${parameter:-2}'"
echo "literal ' -2' '${parameter: -2}'"