On 10/21/16 5:41 PM, L. A. Walsh wrote: > On 4.3 and earlier, at least on arrays, one could have > the illusion of this working w/o complaint -- and returning > 0 when the array was 0-len or unset, or the array length, > otherwise: > > > echo ${#array[@]:-0} > > But I note it only seemed to work in arrays, and in 4.4 gets a > syntax error: > > echo ${#array[@]:-0} bash: ${#array[@]:-0}: bad substitution
Because it is a syntax error, and if it were not it would be ambiguous. The ${param:-word} word expansion takes a parameter, not another word expansion, as the object to be expanded. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/