Dear All, Substrings in bash contain 2 parameters, the start and the length. Start may be negative, but if length is negative, it throws an error. My request is that bash should understand negative length. This would be useful in some occasions, and would be similar to the way PHP does it: http://uk.php.net/manual/en/function.substr.php
For clarity, here are all the cases; the relevant ones are the last two: $ stringZ=abcdef $ echo ${stringZ:2} #Positive start, no length cdef #Reads from start. $ echo ${stringZ: -2} #Negative start, no length ef #Reads 2 back from end. $ echo ${stringZ:-2} #No space before the - abcdef #Is this what we expect? #(or an unrelated bug?) $ echo ${stringZ:2:1} #Starts at 2, reads 1 char. c $ echo ${stringZ:2: -1} #Wish: start at 2, read till ERROR #1 before the end. i.e. # cde $ echo ${stringZ: -3: -1} #Wish: start 3 back, read till ERROR #1 before the end. i.e. # de i.e. ${string:x:y} * returns the string, from start position x for y characters. * but, if x is negative, start from the right hand side * if y is negative, print up to (the end - y) Thanks very much, Richard